// JavaScript Document
/* 
* Author: Rajan Maharjan
* Date : 8th June, 2009
* Reason : Implementing of jquery and stylish error display

*/	
function checkPassword()
{
$pass=$("#password").val();
$repass=$("#cpassword").val();
	if($pass!=$repass)
		{
		$("#verifypassword").html('<font color="#FF0000">Error:: Passwords Mismatched.</font>');
		}
	elseif($pass==$repass)
		{
		$("#verifypassword").html('<font color="#009900">Ok:: Passwords Verified.</font>');
		}	
}

function CopyNode(_nodeToCopy, _parentNode){
	var elem=document.getElementById(_nodeToCopy);
	if (elem.value=="") return;
	var	nodeToCopy=document.getElementById(_nodeToCopy);
	var parentNode=document.getElementById(_parentNode);
	var newNode=nodeToCopy.cloneNode(true);
	var childNodes=newNode.childNodes;
	childCount=newNode.childNodes.length;	
	for(j=0;j<childCount; j++){		 
	 	childNode=childNodes[j];			
		try{		
			childNode.value="";
		}catch(e){
			childNode.nodeValue="";
		}
	}	
	parentNode.appendChild(newNode);
}

function CopyNode2(_nodeToCopy, _parentNode,divIDName,counter){
	var elem=document.getElementById(_nodeToCopy);
	if (elem.value=="") return;
	var	nodeToCopy=document.getElementById(_nodeToCopy);
	var parentNode=document.getElementById(_parentNode);
	var newNode=nodeToCopy.cloneNode(true);
	var childNodes=newNode.childNodes;
	childCount=newNode.childNodes.length;
	var mycounter=parseInt(counter)+1;
	for(j=0;j<childCount; j++){		 
	 	childNode=childNodes[j];		
		try{	
			if(childNode.name!="undefined"){
				if(childNode.name=="inputFileName[]"){
					childNode.id=divIDName+"-"+mycounter;
				}
				if(childNode.name=="href-inputFileName[]"){
					var myLink="server_images.php?img_fieldNameId=inputFileName-"+mycounter;
					childNode.href=myLink;
				}
				
			}
			childNode.value="";
		}catch(e){
			childNode.nodeValue="";
		}
	}
	document.getElementById('jsCounter').value=mycounter;
	
	parentNode.appendChild(newNode);
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function displayStyleErr(idTodisplay, errorMsg){		
	if(errorMsg!=''){		
		inlineMsg(idTodisplay,errorMsg,2);					
		$(idTodisplay).focus();
		$(idTodisplay).select();
		return false;
	}
	else
		return true;
	}


function isValidPhone(phoneString){	
	phoneString=trim(phoneString);	
	if(phoneString=='')
		return false;
		
	if ( (/[^0-9\-\s\/]/g.test(phoneString)) ) {
	alert ("Invalid phone number");
	return false;
	}	
	return true;
	}
	
	
function isNumber(myNumber){
	if(myNumber=='' || isNaN(myNumber))
		return false;
	else
		return true;
}

function isValidURL(theurl) {	
    var urlMatchOne= /(http|https):\/\/www\.[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,}/;	
	if(urlMatchOne.test(theurl)){     
         return true;     
		}
     else      
         return false;  
}


function isValidEmail(strEmail){
	strEmail=strEmail.toLowerCase();
	var myregEmail=/^([_a-z0-9-])+(\.[a-z0-9-]+)*@([a-z0-9-])+(\.[a-z0-9-]{1,})*\.([a-z]{2,}){1}/;
	return myregEmail.test(strEmail);
}


function validate(field,form)
{
	
	try
	{
	valiclass=field.getAttribute("valiclass");	
	valimessage=field.getAttribute("valimessage");
	idOfField=field.getAttribute("id");	
	if(valiclass=="required"){
	req=field.getAttribute("req");
	pattern="\\w{"+req+",}";
	if(!field.value.match(pattern)){			
		return displayStyleErr(idOfField,valimessage);	
		}
	}
	
	else if(valiclass=="txtarea" && field.value==''){		
		return displayStyleErr(idOfField,valimessage);	
		}	
	else if(valiclass=="urllink")
	{
		req=field.getAttribute("req");
		if(req==1){
		if(!isValidURL(field.value))
		{
		return displayStyleErr(idOfField,valimessage);	
		}
		}
		else{
			if(!isValidURL(field.value) && trim(document.getElementById(idOfField).value)!='')
				return displayStyleErr(idOfField,valimessage);	
			}
	}
	
	else if(valiclass=="email")
	{
		
		if(isValidEmail(field.value)==0)
		{
		return displayStyleErr(idOfField,valimessage);	
		}
	}
	
	else if(valiclass=="dePhone")
	{
		
		if(isValidPhone(field.value)==false)
		{
		return displayStyleErr(idOfField,valimessage);	
		}
	}
	
	
	else if(valiclass=="checkbox")
	{
		//!document.frmsignup.chkAccept.checked
		if(!field.checked)
		{
			return displayStyleErr(idOfField,valimessage);	
		}
	
	}
	else if(valiclass=="number")
	{
		
	if(isNumber(field.value)==false)
	{
	return displayStyleErr(idOfField,valimessage);	
	}
		
	}

	else if(valiclass=="PIN")
	{
	pattern="[0-9]{13}$";
	if((field.value.length!=13) || (!field.value.match(pattern)))
	{
	return displayStyleErr(idOfField,valimessage);	
	}
	
	}
	else if(valiclass=="zip")
	{
	pattern="[0-9]{5}$";
	//if(!field.value.match(pattern))
	if((field.value.length!=5) || (!field.value.match(pattern)))
	{
		return displayStyleErr(idOfField,valimessage);	
	}
	
	}
	
	else if(valiclass == "pass")
	{	
	if((field.value.length<5))
	{
	return displayStyleErr(idOfField,valimessage);	
	}
	}
	else if(valiclass == "cpass")
	{	
		
		if(form.password.value != form.cpassword.value)
			{
				return displayStyleErr(idOfField,valimessage);	
			}
	}
	else if(valiclass == "cemail")
	{	
		if(form.email.value != form.cemail.value)
			{
				return displayStyleErr(idOfField,valimessage);				
			}
	}
	
	
	else if(valiclass=="select")
	{
	if(field.value=="0")
	{
	return displayStyleErr(idOfField,valimessage);				
	}
	}
return true;
}
catch(ex)
{
alert(ex.message);
return true;
}
}

function call_validate(form,from,to)
{

for(counter=from;counter<to;counter++)
{
bool=validate(form[counter],form);
if(!bool)
{
return false;
break;
}
}
form.submit();
}

function call_validate_ajax(form,from,to)
{
for(counter=from;counter<to;counter++)
{
bool=validate(form[counter],form);
if(!bool)
{
return false;
break;
}
}
//return true;
form.submit();
}