// Kobi Noiman JavaScript 
// Written by Mike Moloksher (www.maximumdesigns.net)

IMAGE_ROOT = "/images/";
GALLERY_ROOT = "/images/gallery/";


function displayFullImage(obj)
{
	var target = document.getElementById('gallery');
	
	var writeHtml = new String;
	
	var source= obj.src;
	
		
	var root = new Array;
	root = source.split("/"); /* Breaks the root */
	var imgName = root[root.length-1];/*Gets the actual image name */	
	
	var nameNoExt = imgName.split(".");/*Breaks the image name */
	var imgNameSplit = nameNoExt[0].split("_th");/*Breaks the image name */

    
	imgName = imgNameSplit[0]+".jpg";
	
	 
	writeHtml = "<img src='"+GALLERY_ROOT+imgName+"' />";
	//alert(writeHtml);
	target.innerHTML = writeHtml;
		
}
function imageOnOffState(obj)
{	
	objSrc = new Array();
	objSrc = getRenderedImgSrc(obj); //Gets the name of the image without the extention

	if(objSrc['extention'].split('.')[0] == 'off') // Only runs when the button is in the OFF state
	{
		// MOUSEOVER ACTION
		obj.src=IMAGE_ROOT+objSrc['noExtention']+"_over.jpg";	
		
		obj.onmouseout = backToOriginalState;	
		
	}
	function backToOriginalState()
	{
		obj.src=IMAGE_ROOT+objSrc['noExtention']+".jpg";		
	}	
}


function getRenderedImgSrc(imgObj)
{
	imgsrc = imgObj.src;	
	img_root = imgsrc.split("/");
	img_name = img_root[img_root.length-1];
	img_name = img_name.split("_");
	
	imageName = new Array();
	imageName['extention'] = (img_name[2]? img_name[2] : "off.ext") ; // stores the extention of the image whether ON.gif or OFF.gif
	
	img_name = img_name[0]+'_'+img_name[1];
	imageName['noExtention'] = img_name.split(".")[0];// stores an image name without the extention
	
	return imageName; //Returns just the image name without the extention	
}


function getCSSValue(objName,cssProperty,styleSheet)
{
	returnVal = objName.style[cssProperty];
	
	//alert(returnVal);
	//alert(objName.className+' '+cssProperty);
	//alert("Class Name: "+objName.className+" Property: "+cssProperty+" Getting Prop: "+returnVal);
	
	if(returnVal == ''){
	
		//alert(eval(testObj));
		
		  var cssValue= false;
		
		  var ss = document.styleSheets[0];
		
		//cssRules[0] for mozila, rules for explorer
		
			if (navigator.appName=="Microsoft Internet Explorer")
			{
				
		 		 for(i= 0; i< ss.rules.length; i++)
		  			{
		  			
		   			 if(ss.rules[i].selectorText== ('.'+objName.className))
		    			{
		    				  cssValue= ss.rules[i].style[cssProperty];
							  break;
		   				 }
		
		 			 }
		 	 }//end of the if nav name statement
		 	 else
		 	 {
		 	 	for(i= 0; i< ss.cssRules.length; i++)
		  			{
		
					 if(ss.cssRules[i].selectorText== ('.'+objName.className))
		    			{
		    				  cssValue= ss.cssRules[i].style[cssProperty];
		    				  break;
		   				 }
		
		 			 }
		 	}
		 	 	
		  return(cssValue);
	}
	else
		return returnVal;

}



function getNextDiv(d){
	var nextDiv= d.nextSibling;
	
	while(nextDiv){
		if(nextDiv.tagName && nextDiv.tagName=='DIV')
			break;
		else
			nextDiv= nextDiv.nextSibling;
	}	
	return nextDiv
}

function getFirstChild(g)
{
		var prevDiv= g.firstChild;
		while(prevDiv)
		{
				if((prevDiv.tagName && prevDiv.tagName=='DIV') || (prevDiv.tagName=='IMG'))
					break;
				else 
					prevDiv= prevDiv.nextSibling;
		}
		return prevDiv;
}

function getPreviousDiv(g)
{
		var prevDiv= g.previousSibling;
		while(prevDiv)
		{
				if(prevDiv.tagName && prevDiv.tagName=='DIV')
					break;
				else 
					prevDiv= prevDiv.previousSibling;
		}
		return prevDiv;
}

function clearField(currObj)
{
	currObj.value='';
}


/* === AJAX INITIATIONS IMPROVEMENTS === */

var http_request = null;
var currentXml= null;

// check for XPath implementation 
if( document.implementation.hasFeature("XPath", "3.0")) {
	// prototying the XMLDocument 
	XMLDocument.prototype.selectNodes = function(cXPathString, xNode) { 
		if( !xNode ) { xNode = this; }
		var oNSResolver = this.createNSResolver(this.documentElement) 
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver,
						XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null) 
		
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++) { 
			aResult[i] = aItems.snapshotItem(i);
		} 
		return aResult;
	} 
		
	// prototying the Element 
	Element.prototype.selectNodes = function(cXPathString) { 
		if(this.ownerDocument.selectNodes) { 
			return this.ownerDocument.selectNodes(cXPathString, this);
		} else{
			throw "For XML Elements Only";
		} 
	} 
	
	// prototying the XMLDocument 
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) { 
		if( !xNode ) { xNode = this; }
		//alert(cXPathString+" "+xNode);
		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 ){ 
			return xItems[0];
		}  else { 
			return null;
		} 
	} 
	
	// prototying the Element 
	Element.prototype.selectSingleNode = function(cXPathString) {
	if(this.ownerDocument.selectSingleNode) { 
		return this.ownerDocument.selectSingleNode(cXPathString, this);
	} 
		else{throw "For XML Elements Only";} 
	} 
}
 
function getNodeText(xmlNode){
	if(xmlNode== null){
		return '';
	}
	if(typeof(xmlNode.text)== 'undefined') {
		if(xmlNode.selectSingleNode('text()')== null){
			return '';
		}
		return xmlNode.selectSingleNode('text()').nodeValue; 
	} else{
		return xmlNode.text;
	}
}

function userSignUpMaillist()
{
	var genURL = '/includes/maillistSignUpProcess.php';
	passedVar = 'email='+encodeURI(document.mailSignUp.email.value);
	type = 'POST';
	
	processor(genURL, passedVar, type);
}

function contactFormJSProcess()
{
	var genURL = '/includes/contactPageProcess.php';
	passedVar = 'name='+encodeURI(document.contactForm.name.value)+
				'&email='+encodeURI(document.contactForm.email.value)+
				'&message='+encodeURI(document.contactForm.message.value)+
				'&registered='+encodeURI(document.contactForm.registered.value);
				
	type = 'POST';
	
	processor(genURL, passedVar, type);
}

function createUserJSProcess()
{
	var genURL = '/includes/createUserProcess.php';
	passedVar = 'fname='+encodeURI(document.createUserForm.fname.value)+
				'&lname='+encodeURI(document.createUserForm.lname.value)+
				'&email='+encodeURI(document.createUserForm.emailCU.value)+
				'&password='+encodeURI(document.createUserForm.passwordCU.value);
				
	type = 'POST';
	
	processor(genURL, passedVar, type);
}


function loginJSProcess()
{
	
	var genURL = '/includes/loginProcess.php';
	passedVar = 'password='+encodeURI(document.loginForm.password.value)+
				'&email='+encodeURI(document.loginForm.email.value);
				
	type = 'POST';
	
	processor(genURL, passedVar, type);
}



function processor(url, parameters, requestType) {
      http_request = null;
      
      if (window.XMLHttpRequest) { 			// Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) { 	// IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHttp Processor. Please contact your administrator');
         return false;
      }
      
      //alert(url + parameters);
      
      //writeToWindow( url + parameters)
	  http_request.onreadystatechange = processPostReturn;
	  if(requestType == 'GET')
	  {		  
		  http_request.open('POST', url + parameters, true);
		  http_request.send(null);
	  }
	  else 
	  {
		  http_request.open('POST', url, true);
		  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		  http_request.setRequestHeader("Content-length", parameters.length);
		  http_request.setRequestHeader("Connection", "close");
		  http_request.send(parameters);  
	  }
}


function processPostReturn(){

	
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {			
			var xmldoc = http_request.responseXML;			
            var successNode = xmldoc.selectSingleNode('/root/success');			
            var data= getNodeText(successNode);           			
            /*if(data=='true'){*/
            	var returnFunctionNode = xmldoc.selectSingleNode('/root/returnFunction');
            	var returnFunction= getNodeText(returnFunctionNode);            	
            	currentXml= xmldoc;
    			
            	eval(returnFunction);
           /* } else {
            	alert('There was an error processing your request');
            }*/
		}
	}
}

function XMLMailListReturn(validation, email)
{
	
	if(validation == 'true')	
	{
		var formInput = document.getElementById('maillistInput');
		formInput.style.border="2px solid #3a3a3a";		
		formInput.value = "Thank you for your submission";
	}
	else
	{
		var formInput = document.getElementById('maillistInput');
		formInput.style.border="2px solid #fa8000";
		formInput.value = "Please enter a valid email";
	}
}

function XMLContactFormReturn(validation)
{
	
	if(validation == 'true')	
	{
		var thankYou = document.getElementById('thankYou');	
		thankYou.style.display = "block";
		thankYou.value = "Thank you for your submission";
		
		document.getElementById('nameField').style.border="1px solid #3a3a3a";	
		document.getElementById('nameField').value="";
		
		document.getElementById('emailField').style.border="1px solid #3a3a3a";	
		document.getElementById('emailField').value="";
		
		document.getElementById('messageField').style.border="1px solid #3a3a3a";	
		document.getElementById('messageField').value="";
		
	}
	else
	{
		var nodePath = new Array('name','email','message');	
		var userInfo = new Array();
		var value = new Array();
		
		for(i=0; i<3; i++)//Puts user information into an array for easier info access
		{
			path = '/root/'+nodePath[i];
			path = "'"+path+"'";
			path = eval(path);
			
			value[i] = currentXml.selectSingleNode(path);		
			userInfo[i] = getNodeText(value[i]);
		}	
		
		if(userInfo[0] == 'true')
		{
			var nameField = document.getElementById('nameField');
			nameField.style.border="1px solid #fa8000";	
			nameField.value="Please enter a name";
		} 
		else 
		{ 
			var nameField = document.getElementById('nameField'); 
			nameField.style.border="1px solid #3a3a3a";
			 
		}
		
		if(userInfo[1] == 'true')
		{
			var emailField = document.getElementById('emailField');
			emailField.style.border="1px solid #fa8000";	
			emailField.value="Please enter a valid email";
		} 
		else 
		{ 
			var emailField = document.getElementById('emailField'); 
			emailField.style.border="1px solid #3a3a3a"; 
			 
		}
		
		
		if(userInfo[2] == 'true')
		{
			var messageField = document.getElementById('messageField');
			messageField.style.border="1px solid #fa8000";	
			messageField.value="Please enter a message";
		} 
		else 
		{ 
			var messageField = document.getElementById('messageField'); 
			messageField.style.border="1px solid #3a3a3a"; 
		}	

		
		
	}
}

function XMLcreateUserFormReturn(validation)
{
	
	if(validation == 'false')	
	{
		var nodePath = new Array('fname', 'lname', 'email','password', 'message');	
		var userInfo = new Array();
		var value = new Array();
		
		for(i=0; i<6; i++)//Puts user information into an array for easier info access
		{
			path = '/root/'+nodePath[i];
			path = "'"+path+"'";
			path = eval(path);
			
			value[i] = currentXml.selectSingleNode(path);		
			userInfo[i] = getNodeText(value[i]);
			/*alert(getNodeText(value[i]));*/
		}	
		
		if(userInfo[0] == 'true')
		{
			var nameField = document.getElementById('fnameField');
			nameField.style.border="1px solid #fa8000";	
			nameField.value="Please enter a first name";
		} 
		else 
		{ 
			var nameField = document.getElementById('fnameField'); 
			nameField.style.border="1px solid #3a3a3a";
			 
		}
		
		if(userInfo[1] == 'true')
		{
			var nameField = document.getElementById('lnameField');
			nameField.style.border="1px solid #fa8000";	
			nameField.value="Please enter a last name";
		} 
		else 
		{ 
			var nameField = document.getElementById('lnameField'); 
			nameField.style.border="1px solid #3a3a3a";
			 
		}
		
		if(userInfo[2] == 'true')
		{
			var emailField = document.getElementById('emailFieldCU');
			emailField.style.border="1px solid #fa8000";	
			emailField.value="Please enter a valid email";
		} 
		else 
		{ 
			var emailField = document.getElementById('emailFieldCU'); 
			emailField.style.border="1px solid #3a3a3a"; 
			 
		}
		
		
		if(userInfo[3] == 'true')
		{
			var messageField = document.getElementById('passwordFieldCU');
			messageField.style.border="1px solid #fa8000";	
			messageField.value="Please enter a password";
		} 
		else 
		{ 
			var messageField = document.getElementById('passwordFieldCU'); 
			messageField.style.border="1px solid #3a3a3a"; 
		}	

		
		
	}
	else { 
		
		var paypal_form = document.getElementById('paypal_payment');
		paypal_form.submit();
	
	}
}

function XMLLoginFormReturn(validation)
{
	 
	if(validation == 'false')	
	{
		var nodePath = new Array('password','email', 'message');	
		var userInfo = new Array();
		var value = new Array();
		
		for(i=0; i<3; i++)//Puts user information into an array for easier info access
		{
			path = '/root/'+nodePath[i];
			path = "'"+path+"'";
			path = eval(path);
			
			value[i] = currentXml.selectSingleNode(path);		
			userInfo[i] = getNodeText(value[i]);
			/*alert(getNodeText(value[i]));*/
			
		}	
	
		if(userInfo[0] == 'true')
		{
			var nameField = document.getElementById('passwordField');
			nameField.style.border="1px solid #fa8000";	
			nameField.value="Please enter a password";
		} 
		else 
		{ 
			var nameField = document.getElementById('passwordField'); 
			nameField.style.border="1px solid #3a3a3a";
			 
		}
		
		if(userInfo[1] == 'true')
		{
			var emailField = document.getElementById('emailField');
			emailField.style.border="1px solid #fa8000";	
			emailField.value="Please enter a valid email";
		} 
		else 
		{ 
			var emailField = document.getElementById('emailField'); 
			emailField.style.border="1px solid #3a3a3a"; 
			 
		}
		
		if(userInfo[2] != '')
		{
		 
			var frontend_error = document.getElementById('frontend_error');	
			frontend_error.style.display = "block";
			frontend_error.innerHTML = userInfo[2];
		}
		
	}
	else { 
		window.location="/index.php"; 
	}
}

// HIDE EMAIL FUNCTION
function hideEmail(anchorText, username, domain)
{
    if(anchorText == 'null')
        anchorText = username+"@"+domain;
    document.write("<a href=" + "mail" + "to:" + username +    "@" + domain + ">" + anchorText + "</a>");    
}

//Function abbriviates a div, credit George Miguel
function abbreviate(containerId){
   var container= document.getElementById(containerId);
   var mainContainer= document.getElementById('rhs_container_blog');
   var d= document.getElementById('blogHolder'); 						
   var e= '...';

   var h= 150;


   var t= container.innerHTML;

   var s= t.split(' ');
   document.getElementById('blogHolder').innerHTML= t;
 mainContainer.style.display="block";

   for(var x= s.length-1; x> 0; x--){
		   t= t.substring(0, (t.length- (s[x].length+1)));
		   d.innerHTML= t+' '+e;


		   if(d.offsetHeight<= h){
				  break;
		   } else {
		   }
   }
   
   d.innerHTML += '<div class="readMore"><a href="/blog">read more</a></div>'; 
   container.innerHTML= d.innerHTML;
   
}



/*** GOOGLE TOOLBAR INPUT COLORING RESET ***/

if(window.attachEvent)window.attachEvent("onload",resetStyles);

function resetStyles(){
    unGoogle('INPUT');
    unGoogle('SELECT');
}

function unGoogle(eleType){
    var t=document.getElementsByTagName(eleType);
    for(var i=0;i<t.length;i++){
        t[i].attachEvent('onpropertychange',resetCSS);
        t[i].style.backgroundColor='';
    }
}

function resetCSS(){
    var s=event.srcElement.style;
    if(s.backgroundColor!='')s.backgroundColor='';
} 
