// Object Request.
var Request = new function()
{
	this.ajaxCont = new Ajax();
	this.ajaxSCont = new Ajax();
	this.ajaxInfo = new Ajax();
	this.ajaxNav = new Ajax();
	this.divCont = null;
	this.divSCont = null;
	this.divInfo = null;
	this.divNav = null;
	
	this.loading = "<center><br><br><br><br><br><img src='images/loading.gif' width='28' height='28'><br><br><br></center>";
	this.loading2 = "<center><img src='images/loading.gif' width='28' height='28'></center>";
	
	//For the content div.
	this.sendCont = function(url, funct, format)
	{
		if(url)
		{
			Request.ajaxCont.doGet(url, funct, format);
		}
	};
	this.getCont = function(msg)
	{
		if(Request.divCont!=null)
		{
			if(msg=="loading")
			{
				var target = document.getElementById(Request.divCont).innerHTML = Request.loading;
			}
			else
			{
				var target = document.getElementById(Request.divCont).innerHTML = msg;
			}
		}
		else
		{
			return false;	
		}
	};
	//For the info div.
	this.sendInfo = function(url, funct, format)
	{
		
		if(url)
		{
			Request.ajaxInfo.doGet(url, funct, format);
		}
	};
	this.getInfo = function(msg2)
	{
		
		if(Request.divInfo!=null)
		{
			if(msg2=="loading")
			{
				var target = document.getElementById(Request.divInfo).innerHTML = Request.loading2;
			}
			else
			{
				var target = document.getElementById(Request.divInfo).innerHTML = msg2;
			}
		}
		else
		{
			return false;	
		}
	};
	//For the searchBar div.
	this.sendNav = function(url, funct, format)
	{
		if(url)
		{
			Request.ajaxNav.doGet(url, funct, format);
		}
	};
	
	this.getNav = function(msg3)
	{
		
		if(Request.divNav!=null)
		{
			if(msg3=="loading")
			{
				var target = document.getElementById(Request.divNav).innerHTML = Request.loading;
			}
			else
			{
				var target = document.getElementById(Request.divNav).innerHTML = msg3;
			}
		}
		else
		{
			return false;	
		}
	};
	//For only send requests.
	this.sendSCont = function(url, funct, format)
	{
		if(url)
		{
			Request.ajaxSCont.doGet(url, funct, format);
		}
	};
	//Dummy get method.
	this.getSCont = function(msg4)
	{
		if(Request.divSCont!=null)
		{
			if(msg4=="loading")
			{
				var target = document.getElementById(Request.divSCont).innerHTML = Request.loading2;
			}
			else
			{
				var target = document.getElementById(Request.divSCont).innerHTML = msg4;
			}
		}
		else
		{
			return false;	
		}
	};
	
	//For the content div in post method.
	this.sendPostCont = function(url, postData, funct, format)
	{
		if(url)
		{
			Request.ajaxCont.doPost(url, postData, funct, format);
		}
	};
	
	//For making the submit content from the form submited.
	this.getVars = function(formName, method)
	{
		var submitContent = '';
		var formObj = document.getElementById(formName);
		var formElem;
		var lastElemName = '';
		if(method=='GET')
		{
			submitContent = "?";
		}
		else
		{
			submitContent = "";	
		}
		
		for (i = 0; i < formObj.length; i++)
		{
			
			formElem = formObj.elements[i];
			switch (formElem.type)
			{
				// Text fields, hidden form elements
				case 'text':
				case 'hidden':
				case 'password':
				case 'textarea':
				case 'select-one':
					submitContent += formElem.name + '=' + escape(formElem.value) + '&'
					break;
					
				// Radio buttons
				case 'radio':
					if (formElem.checked)
					{
						submitContent += formElem.name + '=' + escape(formElem.value) + '&'
					}
					break;
					
				// Checkboxes
				case 'checkbox':
					if (formElem.checked)
					{
						// Continuing multiple, same-name checkboxes
						if (formElem.name == lastElemName)
						{
							// Strip of end ampersand if there is one
							if (submitContent.lastIndexOf('&') == submitContent.length-1)
							{
								submitContent = submitContent.substr(0, submitContent.length - 1);
							}
							// Append value as comma-delimited string
							submitContent += ',' + escape(formElem.value);
						}
						else
						{
							submitContent += formElem.name + '=' + escape(formElem.value);
						}
						submitContent += '&';
						lastElemName = formElem.name;
					}
					break;
					
			}
		}
		// Remove trailing separator
		submitContent = submitContent.substr(0, submitContent.length - 1);
		return submitContent;
	};
	
	
	//Function for check the required fields in forms.
	this.checkFields = function()
	{
		var formName = arguments[0];
		var formObject = document.getElementById(formName);
		var counter = 0;
		
		for(var i=1; i<arguments.length; i++)
		{
			var msgFieldName = "msg"+arguments[i];
			
			if(formObject.elements[arguments[i]].value == "" || formObject.elements[arguments[i]].value == 0)
			{
				document.getElementById(msgFieldName).style.display = "block";
				counter++;
				
			}
			else
			{
				document.getElementById(msgFieldName).style.display = "none";
			}
		}
		
		if(counter > 0)
		{
			return false;
		}
		else
		{
			return true;	
		}
	};//end method.
	
	this.checkEmail = function (formObject, fieldName) 
	{
		var msgFieldName = "msg"+fieldName;
		var field = formObject.elements[fieldName];
		var str= field.value;
		
		var emailRegEx = /^([a-zņA-ZŅ0-9_\.\-])+\@(([a-zņA-ZŅ0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		
			if(!str.match(emailRegEx))
			{
				
				field.focus();
				field.select();
				//return false;
				document.getElementById(msgFieldName).style.display = "block";
			}
			else
			{
				 //return true	
				document.getElementById(msgFieldName).style.display = "none";
			}
			
	};//End method.
	
	
	this.checkNumber = function (formObject, fieldName) 
	{
		var msgFieldName = "msg"+fieldName;
		var field = formObject.elements[fieldName];
		var testNumber = field.value;
		testNumber = testNumber.replace(/[.|,|-]/g, "");
		var inpVal = parseInt(testNumber);
		
		if (isNaN(inpVal)) 
		{
			inpVal = "";
			field.focus();
			field.select();
			//return false;
			document.getElementById(msgFieldName).style.display = "block";
		}
		else
		{
			//Return true;
			document.getElementById(msgFieldName).style.display = "none";
		}
		
		field.value = inpVal;

	};//end method.
	
	this.loadImage = function (path, target, thb, itemprice)
	{
		var thbArr = new Array('thb1','thb2','thb3','thb4');
		for(var i=0; i<thbArr.length; i++)
		{
			if(thbArr[i]==thb)
			{
				
				document.getElementById(thbArr[i]).style.border = "1px solid #b03339";
				document.getElementById(thbArr[i]).style.backgroundColor = "#ffffff";
			}
			else
			{
				//Walk arround if the element doesn't exist.
				if(document.getElementById(thbArr[i]))
				{
					document.getElementById(thbArr[i]).style.border = "0px solid #F7F7F7";
					document.getElementById(thbArr[i]).style.backgroundColor = "#F7F7F7";
				}
			}
		}
		
		document.getElementById(target).innerHTML = Request.loading;
		var oImg = new Image();
		oImg.onload = function ()
		{
		  document.getElementById(target).innerHTML='<img src="' + oImg.src + '" border="0" alt="' +itemprice + '" title="' + itemprice + '">';
		}
		oImg.src = path; 	
	};
	
	//Method for switch the visibility.
	this.swDisplay = function(objName)
	{
		if(document.getElementById(objName).style.display=='block')
		{
			document.getElementById(objName).style.display = 'none';
		}
		else
		{
			document.getElementById(objName).style.display = 'block';
		}
	};
	
	this.checkPass = function(pass1, pass2, divName)
	{
		if(document.getElementById(pass1).value=="" || document.getElementById(pass1).value != document.getElementById(pass2).value)
		{
			document.getElementById(pass1).value="";
			document.getElementById(pass2).value="";
			document.getElementById(pass1).focus();
			document.getElementById(divName).style.display = 'block'; 
			return false;
		}
		else
		{
			document.getElementById(divName).style.display = 'none';
			return true;	
		}
		
	};
	
	this.getValue = function(objName)
	{
		return document.getElementById(objName).value;
	};
	
	this.aceptConditions = function(objName, divName)
	{
		//alert(document.getElementById(objName).checked);
		if(document.getElementById(objName).checked)
		{
			document.getElementById(divName).style.display = 'block';
		}
		else
		{
			document.getElementById(divName).style.display = 'none';
		}
	};
	
	//Request.divCont='info'; Request.getData('classes/infopanelclass.php' + Request.getVars('defsearchbar'), Request.getReply, 'text');
	//Request.sendInfo('classes/infopanelclass.php' + Request.getVars('defsearchbar'), Request.getInfo, 'text');
	this.pwstrength = function(fieldName, spName)
	{
		setTimeout("Request.pwstrength2('"+fieldName+"', '"+spName+"')", 300);
	}
	this.pwstrength2 = function(fieldName, spName)
	{
		
		var pass = document.getElementById(fieldName).value;
		
		var qlen = 0;
		var comp = '';
		var infopass = 0;
		
		//Length of pass (50%)
		var passlen = pass.length;
		if(passlen>8)
		{
			qlen = 50;
		}
		else
		{
			qlen = passlen*5;
		}
		
		//Numbers in pass (21%)
		comp = pass.replace (/[0-9]/g, "")
		var nums = passlen - comp.length;
		
		if(nums>2)
		{
			qlen += 21;
		}
		else
		{
			qlen += nums*7;
		}
		
		//Symbols in pass (35%)
		comp = pass.replace (/\W/g, "");
		var syms = passlen - comp.length;
		if(syms>2)
		{
			qlen += 33;
		}
		else
		{
			qlen += syms*11;
		}
		
		//Uppercase in pass (21%)
		comp = pass.replace (/[A-Z]/g, "");
		var upps = passlen - comp.length;
		
		if(upps>2)
		{
			qlen += 21;
		}
		else
		{
			qlen += upps*7;
		}
		

		if(qlen<2)
		{
			spcolor = "#FFFFFF";
		}
		if(qlen<35 && qlen>=2)
		{
			spcolor = "#FF0000";
		}
		else if(qlen>=35 && qlen<=55)
		{
			spcolor = "#FF9900";
		}
		else if(qlen>55 && qlen<=85)
		{
			spcolor = "#FFFF00";
		}
		else if(qlen>90)
		{
			spcolor = "#66CC33";
		}
		
		if(qlen>100)
		{
			qlen=100;
		}
		//alert(qlen);
		//aor16@TR4
		document.getElementById(spName).style.backgroundColor = spcolor;
		document.getElementById(spName).style.paddingRight = qlen + "px";
	
	};

};//End Object Request.

