/*'*********************************************************************************************
'* REVISION HISTORY
'* Date Created: 
'* Author:
'*
'* Revision Trail:
'* DATE					BY			SIR/CHANGE REQUEST NO.			CHANGE DESCRIPTION
'* Aug 25, 2006			PBMD			SIR-IDAHOZQC				Careers ASG changes
'* Oct 11, 2006			ARMC			SIR-IDAQAW2C				Bug in field validation for Email a friend Ecard
'* Oct 23, 2008			MTJB			SIR-1373					Careers: Polish - update to Email to a colleaguess
'* Aug. 24, 2009		RPSD			RMT 339						Update Email a Colleague("*Your E-mail:")to RO.
'*********************************************************************************************/

function strURL(){
	var strURLFrom = parent.location;
	strURLFrom = strURLFrom.toString();
	strURLFrom = strURLFrom.substring(strURLFrom.indexOf("pageURL=")+8,strURLFrom.length);
	document.write("<input type='hidden' name='link' value='" + strURLFrom + "'>" + strURLFrom);
}

/*************************************
Trim left side of the string
*************************************/
function ltrim(originalString)
{
	var pos = 0;
	while (originalString.substring(pos, pos+1) == " ")
	{
		pos++;
	}
	originalString = originalString.substring(pos, originalString.length);
	return originalString;
}

/*****************************************
	Trim right side of the string
******************************************/
function rtrim(originalString)
{
	var pos = originalString.length;
	while (originalString.substring(pos-1, pos) == " ")
	{
		pos--;
	}
	originalString = originalString.substring(0, pos);
	return originalString;
}
	
/*******************************************
	Trim left and right side of the string
	Call ltrim and rtrim to perfrom the trim
********************************************/
function trimSpaces(textObj)
{
	originalString = textObj.value;
	originalString = ltrim(originalString);
	originalString = rtrim(originalString);
	return originalString;
}


function isValidChar(vfield,vregExp)
{
    
    var myEnneRegExp = new RegExp(String.fromCharCode(241), "gi")
    vfield=vfield.toString().replace(myEnneRegExp,'enne')
    var invalidChar=vregExp.exec(vfield)
    
    if (invalidChar!=null)
    return false
}


function checkEmailAdd(sDocObj,iNum,sCountry, sFriendText)
{
	/* Validate Sender and Friend email address fields section	*/
	
	var sDocElementName ="";
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	
	if (sCountry=="dfArgentina"){
		if (iNum == 1)
		{
			sDocElementName = "Tu Email - " ;	
		}
		else
		{
			sDocElementName = "Email del destinatario/a - ";
		}
	} else if(sCountry=="dfASG" || sCountry=="ASG"){
		if (iNum == 1)
		{
			sDocElementName = "Ihre E-Mail-Adresse - " ;	
		}
		else
		{
			sDocElementName = "E-Mail-Adresse Ihres Freundes - " ;
		}
	} else if(sCountry=="Polish"){
		if (iNum == 1)
		{
			sDocElementName = "Tw\363j e-mail - " ;	
		}
		else
		{
			sDocElementName = "E-mail Twojego kolegi/kolezanki - " ;
		}
	}else{
		if (iNum == 1)
		{
			sDocElementName = "Your E-mail field - " ;	
		}
		else
		{
			sDocElementName = "Your " + sFriendText + "'s E-mail field - " ;
		}
	}
	var matchArray=sDocObj.match(emailPat);
	var validEmailChar=/[^-.a-z0-9_]/i;
    
    if (matchArray==null) 
	{
		if (sCountry=="dfArgentina") {
			alert (sDocElementName + "El email address se parece incorrecto (cheque @ y .'s)");
		}else if (sCountry=="dfASG" || sCountry=="ASG") {
			alert ("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
		}else if (sCountry=="Polish") {
			alert (sDocElementName + "sprawdz poprawnosc wpisanego adresu (zwr\363c uwage na @ i kropki)");
		}else{
			alert(sDocElementName + "E-mail address seems incorrect (check @ and .'s)");
		}
		return false;
    }
    else
    {
		var user=matchArray[1];
		var domain=matchArray[2];

        if (isValidChar(user,validEmailChar)==false) 
        {
			if (sCountry=="dfASG" || sCountry=="ASG") {
				alert ("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
			} 
			else if(sCountry=="Polish")	{
				alert(sDocElementName + "Nazwa uzytkownika zawiera niedozwolone znaki.");
			}
			else {
				alert(sDocElementName + "The username contains invalid characters.");
			}
			return false;
		}
        else
		{
			var alphanum=/[^a-z0-9]/i
            var isUserNameFormatValid=true;
            for(i=0;i<=user.length-1;i++)
            {
				if (user.charAt(i)=="-" || user.charAt(i)=="_" || user.charAt(i)==".")  
                {
					if (i==0)
                    {            
						isUserNameFormatValid=false;
                        i=user.length
                        break
                    }
        
					if (i>0)
					{ 
                        var cright=user.charAt(i+1) ;
                        var cleft=user.charAt(i-1);
                                        
                        if ((alphanum.exec(cright)!=null) || (alphanum.exec(cleft)!=null) || cright=='') 
                        {
							isUserNameFormatValid=false;
                            i=user.length
                        }
                        
                        break
					}                   
				} //end if
			} // end for
                                    
			if (isUserNameFormatValid==false)
			{
				if (sCountry=="dfASG" || sCountry=="ASG") 
				{
					alert("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
					return false;
				}
				else if (sCountry=="Polish") 
				{
					alert(sDocElementName +"Niedozwolony format nazwy uzytkownika.");
					return false;
				}
				else
				{
					alert(sDocElementName +"Invalid username format.");
					return false;
				}
			}	  
		} //else end

        if (isValidChar(domain,validEmailChar)==false) 
	    {
			if (sCountry=="dfASG" || sCountry=="ASG")
			{
				alert("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
			    return false;			
			}
			else if (sCountry=="Polish")
			{
				alert(sDocElementName +"w nazwie domeny znajduja sie niedozwolone znaki.");
			    return false;			
			}
			else
			{
				alert(sDocElementName +"The domain name contains invalid characters.");
				return false;				
			}
		}
        else
        {
			var alphanum=/[^a-z0-9]/i
            var isDomainFormatValid=true;
            
            for(i=0;i<=domain.length-1;i++)
            {        
				if (domain.charAt(i)=="-" || domain.charAt(i)=="_")  
                {
					if (i==0)
                    {            
						isDomainFormatValid=false;
                        i=domain.length
                        break
                    }
					
					if (i>0)
                    { 
						var cright=domain.charAt(i+1) ;
                        var cleft=domain.charAt(i-1);
                                        
                        if ((alphanum.exec(cright)!=null) || (alphanum.exec(cleft)!=null) || cright=='') 
                        {
							isDomainFormatValid=false;
                            i=domain.length
                        }
                        
                        break
					} 
                } //end if
			} // end for
                
            if ((isDomainFormatValid==false) && (sCountry=="dfASG" || sCountry=="ASG"))
            {
				alert(sDocElementName +"Unzulassiges Gebiet Format.");
                return false;
            }else if ((isDomainFormatValid==false) && (sCountry=="Polish"))
            {
				alert(sDocElementName +"Niedozwolony format domeny.");
                return false;
			}else if (isDomainFormatValid==false)
            {
				alert(sDocElementName +"Invalid domain format.");
                return false;
			}
		}// end else
	} //end else

	if ((user.match(userPat)==null) && (sCountry=="dfASG" || sCountry=="ASG"))
	{
		alert("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
		return false;
	}else if ((user.match(userPat)==null) && (sCountry=="Polish"))
	{
		alert(sDocElementName +"Wprowadzona nazwa uzytkownika jest nieprawidlowa.");
		return false;
	}else if (user.match(userPat)==null) 
	{
		alert(sDocElementName +"The username entered is invalid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++) 
		{
			if ((IPArray[i]>255) && (sCountry=="dfASG" || sCountry=="ASG"))
			{
				alert(sDocElementName +"Bestimmungsort-IP address ist unzulassig!");
				return false;
			}else if ((IPArray[i]>255) && (sCountry=="Polish"))
			{
				alert(sDocElementName +"Docelowy adres IP jest nieprawidlowy!");
				return false;
			}else if (IPArray[i]>255) 
			{
				alert(sDocElementName +"Destination IP address is invalid!");
				return false;
			}
		}
		return true;
	}

	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) 
	{
		if (domArr[i].search(atomPat)==-1) 
		{
			if (sCountry=="dfASG" || sCountry=="ASG") 
				{
					alert("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
					return false;
				}
			else if (sCountry=="Polish") 
				{
					alert(sDocElementName +"nazwa domeny jest nieprawidlowa.");
					return false;
				}
			else
				{
					alert(sDocElementName +"The domain name does not seem to be valid.");
					return false;
				} 
		}
	}
	if ((checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) && (sCountry=="dfASG" || sCountry=="ASG")) {
		alert("Bitte geben Sie eine gueltige E-Mail-Adresse an, z.B. joe@smith.com .");
		return false;
	} else if ((checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) && (sCountry=="Polish")) {
		alert(sDocElementName +"Adres musi sie konczyc znana nazwa domeny lub dwuliterowym kodem panstwa.");
		return false;
	} else if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert(sDocElementName +"The address must end in a well-known domain or two letter " + "country.");
		return false;
	}
	
	if ((len<2) && (sCountry=="dfASG" || sCountry=="ASG"))
	{
		alert(sDocElementName +"Die Adresse vermiBt ein hostname!");
		return false;
	}else if ((len<2) && (sCountry=="Polish"))
	{
		alert(sDocElementName +"Brak nazwy hosta w adresie!");
		return false;
	}else if (len<2) 
	{
		alert(sDocElementName +"The address is missing a hostname!");
		return false;
	}
	          
	/*	End of Validate email address field section	*/
	return true;

}

/*******************************************
	Validate form 	
********************************************/
function ValidateForm (oFormObject,sCountry)  
{
	var missingfield = "";
	var sValidTextChar =/[^ .,a-z0-9()'-]/i;
	var svalidTextChar2 =/[^_\n\r .,a-z0-9#&*';%:@+=)($!`~?{[]}-]/i;		
	var HTMLtag=/<\s*(!--|html|meta.*|body.*|form.*|script.*|embed|applet|object|select|a.*|input.*)|<\/.*>|<|>|%60|%62|&lt|&gt/i;
	
	var sURL = oFormObject.link.value;
	var sFriendText = 'Colleague';
	
	sURL = sURL.toLowerCase();
	
	//checks if text should be 'Friend' or 'colleague'
	if (sURL.indexOf("usertype=") > 0 && sURL.indexOf("usertype=client") == -1){
		sFriendText = 'Friend';
	}	
	if (sCountry=="dfArgentina"){ 
			oFormObject.friend_email.value = trimSpaces(oFormObject.friend_email);
			if (oFormObject.friend_email.value == null || oFormObject.friend_email.value == "")
			{
				missingfield += "\n     -  Email del destinatario/a";
			}
	
	}
	else if (sCountry=="dfASG" || sCountry=="ASG")
	{ 
			oFormObject.sender_name.value = trimSpaces(oFormObject.sender_name)
			if (oFormObject.sender_name.value == null || oFormObject.sender_name.value == "")
			{	
				missingfield += "\n     -  Ihr Name";			
			}
			
			if (isValidChar(oFormObject.sender_name.value,sValidTextChar)==false) 
			{
				alert("Bitte geben Sie nur folgende Zeichen ein: 0-9, A-Z");
				return false;
			} 

			oFormObject.friend_name.value = trimSpaces(oFormObject.friend_name)
			if (oFormObject.friend_name.value == null || oFormObject.friend_name.value == "")
			{
				missingfield += "\n     -  Name Ihres Freundes";
			}
			
			if (isValidChar(oFormObject.friend_name.value,sValidTextChar)==false) 
			{
				alert("Bitte geben Sie nur folgende Zeichen ein: 0-9, A-Z");
				return false;
			} 

			if (isValidChar(oFormObject.comments.value,svalidTextChar2)==false) 
			{
				alert("Ihr Kommentar fangen enthalt unzulassige Buchstaben auf.");
				return false;
			} 

			if (isValidChar(oFormObject.comments.value,HTMLtag)==false) 
			{
				alert("Ihr Kommentar fangen enthalt unzulassige Buchstaben auf.");
				return false;
			} 

			oFormObject.friend_email.value = trimSpaces(oFormObject.friend_email)
			if (oFormObject.friend_email.value == null || oFormObject.friend_email.value == "")
			{
				missingfield += "\n     -  E-Mail-Adresse Ihres Freundes";
				
			}
	}
	
	else if (sCountry=="Polish")
	{
		oFormObject.sender_name.value = trimSpaces(oFormObject.sender_name);
		if (oFormObject.sender_name.value == null || oFormObject.sender_name.value == "")
		{	
			missingfield += "\n     -  Twoje imie";	
		}
			
		if (isValidChar(oFormObject.sender_name.value,sValidTextChar)==false) 
		{
			alert("Twoje imie zawiera niedozwolone znaki.");
			return false;
		} 
		
		oFormObject.friend_name.value = trimSpaces(oFormObject.friend_name)
		if (oFormObject.friend_name.value == null || oFormObject.friend_name.value == "")
		{
			missingfield += "\n     -  Imie Twojego kolegi lub kolezanki";
		}
		
		oFormObject.friend_email.value = trimSpaces(oFormObject.friend_email)
		if (oFormObject.friend_email.value == null || oFormObject.friend_email.value == "")
		{
			missingfield += "\n     -  Adres e-mail Twojego kolegi lub kolezanki";
		}
		if (isValidChar(oFormObject.friend_name.value,sValidTextChar)==false) 
		{
			alert("Imie Twojego kolegi/kolezanki zawiera niedozwolone znaki.");
			return false;
		} 
		if (isValidChar(oFormObject.comments.value,svalidTextChar2)==false) 
		{
			alert("Pole z komentarzem zawiera niedozwolone znaki.");
			return false;
		} 	
		if (isValidChar(oFormObject.comments.value,HTMLtag)==false) 
		{
			alert("Pole z komentarzem zawiera niedozwolone znaki.");
			return false;
		} 
	}	
	
	else
	{
		oFormObject.sender_name.value = trimSpaces(oFormObject.sender_name);
		if (oFormObject.sender_name.value == null || oFormObject.sender_name.value == "")
		{	
			missingfield += "\n     -  Your Name";	
		}
			
		if (isValidChar(oFormObject.sender_name.value,sValidTextChar)==false) 
		{
			alert("Your Name field contains invalid characters.");
			return false;
		} 
		
		oFormObject.friend_name.value = trimSpaces(oFormObject.friend_name)
		if (oFormObject.friend_name.value == null || oFormObject.friend_name.value == "")
		{
			missingfield += "\n     -  Your " + sFriendText + "'s Name";
		}
		
		oFormObject.friend_email.value = trimSpaces(oFormObject.friend_email)
		if (oFormObject.friend_email.value == null || oFormObject.friend_email.value == "")
		{
			missingfield += "\n     -  Your " + sFriendText + "'s E-mail Address";
		}
		if (isValidChar(oFormObject.friend_name.value,sValidTextChar)==false) 
		{
			alert("Your " + sFriendText + "'s Name field contains invalid characters.");
			return false;
		} 

		if (isValidChar(oFormObject.comments.value,svalidTextChar2)==false) 
		{
			alert("Comments field contains invalid characters.");
			return false;
		} 
			
		if (isValidChar(oFormObject.comments.value,HTMLtag)==false) 
		{
			alert("Comments field contains invalid characters.");
			return false;
		} 
	}
		
	if (missingfield != "")
	{
		if (sCountry=="dfArgentina") {
			alert("Campos requeridos:\n " + missingfield );
		}else if (sCountry=="dfASG" || sCountry=="ASG") {
			alert("Bitte f\374llen Sie die folgenden Felder aus:\n " + missingfield + " \n\nVielen Dank!");
		}else if (sCountry=="Polish") {
			alert("Wypelnij prosze wymagane pola:\n " + missingfield + " \n\nDziekuje!");
		}else{
			alert("Please complete these required fields:\n " + missingfield + " \n\nThank you!");
		}
		return false;
	}

// Check email addresses
	if (checkEmailAdd(oFormObject.friend_email.value,2,sCountry, sFriendText)==false)
	{
		return false;
	}
	
	return true;
}