var web_url = "";
//var web_url = "http://newstouch.com";
////////////////////////// AJAX CODE SNIPPET //////////////////////////////
// Define a list of Microsoft XML HTTP ProgIDs.
var XMLHTTPREQUEST_MS_PROGIDS = new Array(
  "Msxml2.XMLHTTP.7.0",
  "Msxml2.XMLHTTP.6.0",
  "Msxml2.XMLHTTP.5.0",
  "Msxml2.XMLHTTP.4.0",
  "MSXML2.XMLHTTP.3.0",
  "MSXML2.XMLHTTP",
  "Microsoft.XMLHTTP"
);
// Define ready state constants.
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

var myXmlHttpTreeRequest = null;
var myXmlHttpContentRequest = null;
var xmlHttpReq = null;
// Returns XMLHttpRequest object.
function createXMLHttpRequest() {
	var httpRequest = null;	
	// Create the appropriate HttpRequest object for the browser.
	if (window.XMLHttpRequest != null)
		httpRequest = new window.XMLHttpRequest();
	else if (window.ActiveXObject != null) {
		// Must be IE, find the right ActiveXObject.
		var success = false;
		for (var i = 0; i < XMLHTTPREQUEST_MS_PROGIDS.length && !success; i++) {
			try	{
				httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
				success = true;
			} 
			catch (ex) {}
		}
	}	
	// Display an error if we couldn't create one.
	if (httpRequest == null)
		alert("Error in HttpRequest():\n\n" + "Cannot create an XMLHttpRequest object.");
	// Return it.
	return httpRequest;
}
function loadMyTree() {
	//alert('loadMyTree is called');	
	var tree_url = web_url+"/servlets/fetchtree?nid=cat0";
	//if(myXmlHttpTreeRequest == null)
		myXmlHttpTreeRequest = createXMLHttpRequest();
	if(document.getElementById)
		document.getElementById('tree_ajax_ind').style.display='';
	myXmlHttpTreeRequest.onreadystatechange = function (){
		if (myXmlHttpTreeRequest.readyState == XMLHTTPREQUEST_READY_STATE_COMPLETED) {
			//alert('loadUserTree readyState='+myXmlHttpTreeRequest.readyState+'\t status='+myXmlHttpTreeRequest.status);
			if (myXmlHttpTreeRequest.status == 200) {
				//alert('showUserTree response:\n'+myXmlHttpTreeRequest.responseText);		
				eval(myXmlHttpTreeRequest.responseText);
			}
			else {
				alert("Error: HTTP " + myXmlHttpTreeRequest.status + " " + myXmlHttpTreeRequest.statusText);
			}
			document.getElementById('tree_ajax_ind').style.display='none';
		}
	};
	myXmlHttpTreeRequest.open("GET", tree_url, true);
	myXmlHttpTreeRequest.setRequestHeader("Cache-Control", "no-cache");
	myXmlHttpTreeRequest.setRequestHeader("Pragma", "no-cache");
	myXmlHttpTreeRequest.setRequestHeader("Expires", "0");
	myXmlHttpTreeRequest.setRequestHeader("Connection", "close");	
	myXmlHttpTreeRequest.send(null);
}
function loadMyContents(page_url) {
	page_url = web_url+'/account/'+page_url;
	//alert('loadMyContents is called: '+page_url);
	//if(myXmlHttpContentRequest == null)
		myXmlHttpContentRequest = createXMLHttpRequest();

	myXmlHttpContentRequest.onreadystatechange = function (){
		if (myXmlHttpContentRequest.readyState == XMLHTTPREQUEST_READY_STATE_COMPLETED) {
			if (myXmlHttpContentRequest.status == 200) {			
				var tempStr = myXmlHttpContentRequest.responseText;
				document.getElementById('contentPane').innerHTML = tempStr;
				//alert('loadMyContents response found\n'+tempStr+'\n-----------------');				
				//var startIndex = tempStr.indexOf("script type=\"text/javascript\"")+30;
				//var endIndex = tempStr.indexOf("\/script")-1;
				var startIndex = tempStr.indexOf("++myscript--")+12;
				var endIndex = tempStr.indexOf("--myscript++");				
				//alert('script start:'+startIndex+'\t ends:'+endIndex);
				if(startIndex > 0 && endIndex > 0 && startIndex < endIndex){
					//alert('evaluating.... \n'+tempStr.substring(startIndex, endIndex));
					eval(tempStr.substring(startIndex, endIndex));
				}
			}
			else {
				alert("Error: HTTP " + myXmlHttpContentRequest.status + " " + myXmlHttpContentRequest.statusText);
			}
		}
	};
	myXmlHttpContentRequest.open("GET", page_url, true);
	myXmlHttpContentRequest.setRequestHeader("Cache-Control", "no-cache");
	myXmlHttpContentRequest.setRequestHeader("Pragma", "no-cache");
	myXmlHttpContentRequest.setRequestHeader("Expires", "0");
	myXmlHttpContentRequest.setRequestHeader("Connection", "close");		
	myXmlHttpContentRequest.send(null);
}

function isEmail(string) {
	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function processFeed(formObj) {
	var action_url = formObj.action;
	//alert("Form Name="+formObj.name+"\tForm Action="+action_url);
	//var params = "";
	if(formObj.name == 'editFeedForm'){
		if(formObj.sub.value=='true' && formObj.feedName.value=='') {
    	      alert("Enter Feed Name.");
			  return;
		} 
		//params += "&mode="+formObj.mode.value;
		//params += "&channelId="+formObj.channelId.value;
		//params += "&sub="+formObj.sub.value;
		//params += "&feedName="+formObj.feedName.value;
		//params += "&catId="+formObj.catId.value;
	}
	else if(formObj.name == 'addFeedForm'){
		var msg = "";
		if(formObj.feedName.value==null || formObj.feedName.value=='') {
    	      msg += "Enter Feed Name.\n";
		} 
		if(formObj.url.value==null || formObj.url.value=='') {
    	      msg += "Enter Feed URL.\n";
		} 
        if(msg.length > 0) {
        	alert("Following Errors Found!\n"+msg);
			return;
        } 
		
		if(!('http://' == formObj.url.value.substring(0,7) || 'https://' == formObj.url.value.substring(0,8)) ) {
			formObj.url.value = 'http://' + formObj.url.value;
		}
		//alert("feed URL="+formObj.url.value+" \n substr="+formObj.url.value.substring(0,8));

		//params += "&mode="+formObj.mode.value;
		//if(formObj.channelId != null)
			//params += "&channelId="+formObj.channelId.value;
		//params += "&feedName="+formObj.feedName.value;
		//params += "&url="+escape(formObj.url.value);
		//params += "&catId="+formObj.catId.value;
	}
	else if(formObj.name == 'addKeywordFeedForm'){		
        if(formObj.keyword.value==null || formObj.keyword.value==''){
        	alert("Enter one or more Keywords.");
			return;
        } 
		var name = "";
		var value = "";
		var v = tmp = trim(formObj.keyword.value);
    	var keyId = 0;
    	for(var j = 0; j<formObj.keys.length; j++) {
            if(formObj.keys[j].checked) {
                keyId = formObj.keys[j].value;
                break;
            }
    	}
      	if(keyId==1) {
			name = "Google News: "+tmp;
			value = escape("http://news.google.com/news?q="+v+"&ie=UTF-8&output=rss");
      	} else if(keyId==2) {
			name = "Yahoo News: "+tmp;
    		value = escape("http://news.search.yahoo.com/news/rss?ei=UTF-8&p="+v);
      	}
		formObj.url.value = value;
		formObj.feedName.value = name;

		//params += "&mode="+formObj.mode.value;
		//params += "&feedName="+formObj.feedName.value;
		//params += "&url="+formObj.url.value;
		//params += "&catId="+formObj.catId.value;
		//params += "&K="+formObj.K.value;		
	}
	else if(formObj.name == 'addSecureFeedForm'){		
		var msg = "";
		if(formObj.feedName.value==null || formObj.feedName.value=='')
    	      msg += "Enter Feed Name.\n";
        if(formObj.url.value==null || formObj.url.value=='')
        	msg += "Enter Feed URL.\n";
		if(formObj.userName.value=='')
        	msg += "Enter Username for secure feed.\n";
		if(formObj.password.value=='')
        	msg += "Enter password for secure feed.\n";

        if(msg.length>0) {
        	alert(""+msg);
			return;
        } 
		var url = formObj.url.value;
		if(url.indexOf('http://') < 0 && url.indexOf('https://') < 0)
			url = 'https://'+url;
		formObj.url.value = escape(url);
		
		//params += "&mode="+formObj.mode.value;
		//params += "isSecure="+formObj.isSecure.value;		
		//params += "&feedName="+formObj.feedName.value;
		//params += "&url="+formObj.url.value;
		//params += "&catId="+formObj.catId.value;
		//params += "&userName="+formObj.userName.value;
		//params += "&password="+formObj.password.value;		
	}	
	sendHttpRequest(action_url, getFormParams(formObj));
}

function validateUrl(formObj) {
	var url = formObj.url.value;
  	if(url=='' || url==null){
		alert("Enter Feed URL.");
		return;  	
  	}
   	if(url.indexOf('http://') < 0 && url.indexOf('https://') < 0) {
    	url = 'http://'+url;            
    }
        //var url ="feedValidator?url="+encodeURIComponent(url);
        //var winl = (screen.width - 800) / 2;
        //var wint = (screen.height - 700) / 2;
        //window.open(url,'','width=400,height=200,'+'top='+wint+',left='
                      //+winl+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=no');
    sendHttpRequest(formObj.action, "url="+encodeURIComponent(url));
}

function showElement(elemID) {
	if(document.getElementById(elemID) != null){
		document.getElementById(elemID).style.display='';
		if(document.getElementById(elemID+"Btn") != null){
			button = document.getElementById(elemID+"Btn");
			button.className = "sel";
		}
	}
}

function hideElement(elemID) {
	if(document.getElementById(elemID) != null){
		document.getElementById(elemID).style.display='none';
		if(document.getElementById(elemID+"Btn") != null){
			button = document.getElementById(elemID+"Btn");
			button.className = "deSel";
		}
	}
}

function showFeedPane(fieldset){
	//alert('showfeedpane is called fieldset='+fieldset);
	if(fieldset == 'addFeed'){
		showElement('addFeed');
		hideElement('addKeywordfeed');
		hideElement('addSecurefeed');
	}
	else if(fieldset == 'addKeywordfeed'){
		hideElement('addFeed');
		showElement('addKeywordfeed');
		hideElement('addSecurefeed');
		//hideElement('successMsg');
		//hideElement('errorMsg');
	}
	else if(fieldset == 'addSecurefeed'){
		hideElement('addFeed');
		hideElement('addKeywordfeed');
		showElement('addSecurefeed');
	}
}

function processFolder(formObj) {
	var action_url = formObj.action;
	//alert("Form Name="+formObj.name+"\tForm Action="+action_url);
	var params = "";
	if(formObj.name == 'addCateForm'){
		if(formObj.catName.value == null || formObj.catName.value=='') {
    	      alert("Enter Folder Name.");
			  return;
		} 
		params = getFormParams(formObj);
	}
	else if(formObj.name == 'editCateForm'){
		var action = formObj.mode.value; 
		if(action == 'delete'){
			var doDelete = confirm("Do you really want to delete the selected folder including its subfolders and feeds?"); 
			if (!doDelete) {
		       return;
			}
		} else{ 
			if(formObj.catName.value == null || formObj.catName.value=='') {
    	      alert("Enter Folder Name.");
			  return;
			}
		}
		params = getFormParams(formObj);
	}
	else if(formObj.name == 'workerForm'){
		var ids="";
		//alert("form elems:\n"+getFormParams(formObj));
		if(formObj.chIds!=null){						
		  	for(var j = 0; j < formObj.chIds.length; j++){
				//alert('channelId='+formObj.chIds[j].value);
		  		if(formObj.chIds[j].checked){
					ids += (formObj.chIds[j].value+",");
				}
			}	
			if(ids == "") {
				if(formObj.chIds.checked)
					ids += (formObj.chIds.value+",");
				else{
			    	alert('Please select one or more feeds to unsubscribe.');
					return;
				}
		  	}
		}
		formObj.mode.value='unSub';
		params += "&mode="+formObj.mode.value;
		params += "&sys="+formObj.sys.value;
		params += "&chIds="+ids;
	}
	else if(formObj.name == 'popfeedsForm'){
		var ids="";
		//alert("form elems:\n"+getFormParams(formObj));
		if(formObj.chIds!=null){						
		  	for(var j = 0; j < formObj.chIds.length; j++){
				//alert('channelId='+formObj.chIds[j].value);
		  		if(formObj.chIds[j].checked){
					ids += (formObj.chIds[j].value+",");
				}
			}	
			if(ids == "") {
				if(formObj.chIds.checked)
					ids += (formObj.chIds.value+",");
				else{
			    	alert('Please select one or more feeds to Subscribe.');
					return;
				}
		  	}
		}
		
		params += "&mode="+formObj.mode.value;
		params += "&targetCatId="+formObj.targetCatId.value;		
		params += "&chIds="+ids;
		//alert("params:\n"+params);
	}
	/*
	if(formObj.name == 'addCateForm' || formObj.name == 'editCateForm'){
		params += "&mode="+formObj.mode.value;
		params += "&catId="+formObj.catId.value;
		params += "&catName="+formObj.catName.value;
		params += "&pCatId="+formObj.pCatId.value;	
	}
	*/
	sendHttpRequest(action_url, params);
}

function processAccount(formObj) {
	//alert('updateProfile is called from '+formObj.name);
	var msg = "";	
	if(formObj.name=='profileForm'){
		if(formObj.firstName.value==null || formObj.firstName.value=='') {
			msg += "\n . First Name";
		}
		if(formObj.lastName.value==null || formObj.lastName.value=='') {
			msg += "\n . Last Name";
		}
		if(formObj.cellNumber.value==null || formObj.cellNumber.value=='') {
			msg += "\n . Mobile Phone #";
		}
		if(formObj.country.value==null || formObj.country.value=='' || formObj.country.value=='0' || formObj.country.value=='empty') {
			msg += "\n . Country";
		}
	}
	else if(formObj.name=='passForm'){
		function isValidPassword(value) {
			if(value.charAt(0)==' ' || value.charAt(value.length-1)==' ' || value.indexOf("\\")>=0)
				return false;
			return true;
		};
		if(formObj.pass.value==null || formObj.pass.value=='')
			msg += "\n Enter Current Password";
		if(formObj.pass1.value==null || formObj.pass1.value=='')
			msg += "\n Enter New Password";
		if(formObj.pass2.value==null || formObj.pass2.value=='')
			msg += "\n Enter Confirm New Password";
		if(formObj.pass1.value!=null && formObj.pass2.value!=null && formObj.pass2.value!=formObj.pass1.value)
			msg += "\n New Password and Confirm New Password do not match";
		if(msg.length==0 && (isValidPassword(formObj.pass2.value)==false || isValidPassword(formObj.pass1.value)==false)) {
			msg += "\n . Enter a valid password. Characters not allowed are space ' ', back slash '\\'";
		}
	}
	if(msg.length > 0) {
		msg = "Your information is incomplete or incorrect. Please correct the field(s) below and try again:" + msg;
		alert(msg);
		return;
	} 
	//document.profileForm.submit();
	sendHttpRequest(formObj.action, getFormParams(formObj));	
}

function processImport(formObj) {
	//var filePath = formObj.impfile.value;
	var filePath = formObj.impfile.value.replace(/\\/g, "\\\\");
	//alert("file name:"+formObj.impfile.name+" \t path:"+filePath);
  	if(filePath==null || filePath=="") {
   		alert("Select an OPML file to import.");
		return;
  	}
  	else if(filePath.indexOf(".opml") < 0 && filePath.indexOf(".xml") < 0) {
   		alert("The selected file is not a valid OPML file.");
		return;
  	}
	formObj.submit();
	/*
	var xml_dom = getXmlRequestBody(filePath);
	if(xml_dom == null){
   		alert('unable to create xml document. ');
		return;
   	}
	sendHttpRequest(formObj.action, xml_dom, "text/xml");
	*/
}

function processTellToFriends(formObj) {
	//alert('updateProfile is called from '+formObj.name);
	var msg = "";
	var emptyFriendList = 0;
	if((formObj.name1.value.trim()!='' && formObj.email1.value.trim()=='') || (formObj.name1.value.trim()=='' && formObj.email1.value.trim()!='')) {
		msg += ".\n First friend's name or email is empty.";
	}
	else if(formObj.email1.value.trim()!='' && !isEmail(formObj.email1.value.trim())) {
		msg += ".\n First friend's email is not valid.";
	} 
	else if(formObj.name1.value.trim()=='' && formObj.email1.value.trim()==''){
		emptyFriendList++;
	}
	
	if((formObj.name2.value.trim()!='' && formObj.email2.value.trim()=='') || (formObj.name2.value.trim()=='' && formObj.email2.value.trim()!='')) {
		msg += ".\n Second friend's name or email is empty.";
	}
	else if(formObj.email2.value.trim()!='' && !isEmail(formObj.email2.value.trim())) {
		msg += ".\n Second friend's email is not valid.";
	}
	else if(formObj.name2.value.trim()=='' && formObj.email2.value.trim()==''){
		emptyFriendList++;
	}

	if((formObj.name3.value.trim()!='' && formObj.email3.value.trim()=='') || (formObj.name3.value.trim()=='' && formObj.email3.value.trim()!='')) {
		msg += ".\n Third friend's name or email is empty.";
	}
	else if(formObj.email3.value.trim()!='' && !isEmail(formObj.email3.value.trim())) {
		msg += ".\n Third friend's email is not valid.";
	}	
	else if(formObj.name3.value.trim()=='' && formObj.email3.value.trim()==''){
		emptyFriendList++;
	}
	
	if((formObj.name4.value.trim()!='' && formObj.email4.value.trim()=='') || (formObj.name4.value.trim()=='' && formObj.email4.value.trim()!='')) {
		msg += ".\n Fourth friend's name or email is empty.";
	}
	else if(formObj.email4.value.trim()!='' && !isEmail(formObj.email4.value.trim())) {
		msg += ".\n Fourth friend's email is not valid.";
	}
	else if(formObj.name4.value.trim()=='' && formObj.email4.value.trim()==''){
		emptyFriendList++;
	}
	
	if((formObj.name5.value.trim()!='' && formObj.email5.value.trim()=='') || (formObj.name5.value.trim()=='' && formObj.email5.value.trim()!='')) {
		msg += ".\n Fifth friend's name or email is empty.";
	}
	else if(formObj.email5.value.trim()!='' && !isEmail(formObj.email5.value.trim())) {
		msg += ".\n Fifth friend's email is not valid.";
	}
	else if(formObj.name5.value.trim()=='' && formObj.email5.value.trim()==''){
		emptyFriendList++;
	}
	
		
	if(msg.length > 0) {
		alert("Following errors found in your information" + msg);		
		return;
	} else if(emptyFriendList == 5) {
		alert('Please select atleast one friend\'s name & email.');
		return;
	}	
	sendHttpRequest(formObj.action, getFormParams(formObj));
}
		
function getFormParams(formObj){
	var params = "";
	for(i=0; i<formObj.elements.length; i++){
		var formElem = formObj.elements[i];
		params += ("&"+formElem.name+"="+formElem.value);
	}
	return params;
}

function getXmlRequestBody(filePath){
	var fileName = filePath.substring(filePath.lastIndexOf('\\')+1);

	// create XML document with default header and primary node
	var xmlString = '<?xml version="1.0" ?> <root><file1></file1></root>';
	var xml_dom = null;
	var sFileContents = '';
	if (document.implementation && document.implementation.createDocument) {
		// This browser appears to support DOMParser
		var parser = new DOMParser();
	  	xml_dom = parser.parseFromString(xmlString, "text/xml");
		delete parser;
		
		// request local file read permission
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		} catch (e) {
			alert("Permission to read file was denied.\nTo resolve this problem, go to installation directory of Mozilla e.g. 'C:\Program Files\Mozilla Firefox\greprefs' then open all.js file and find this word 'signed.applets.codebase_principal_support' and set it to true. Close browser and open again, you'r done.");
		}
		// open the local file			
		var file = Components.classes["@mozilla.org/file/local;1"]
			.createInstance(Components.interfaces.nsILocalFile);
		file.initWithPath( filePath );
		//alert('after file initWithPath');
		if ( file.exists() == true ) {
			//alert( "file found with initWithFile... " );
			var is = null, sis = null;
			try {
				is = Components.classes["@mozilla.org/network/file-input-stream;1"]
					.createInstance( Components.interfaces.nsIFileInputStream );
				is.init( file, 0x01, 00004, null);
				//is.init(file, -1, 0, 0);
				sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
					.createInstance( Components.interfaces.nsIScriptableInputStream );
				sis.init( is );
				sFileContents = sis.read( sis.available() );
				/*
				//send http request
				// prepare the MIME POST data
				var boundaryString = 'capitano';
				var boundary = '--' + boundaryString;
				var requestbody = boundary + '\n'
				+ 'Content-Disposition: form-data; name="mytext"' + '\n' 
				+ '\n' 
				+ "my name is qaiser" + '\n' 
				+ '\n' 
				+ boundary + '\n' 
				+ 'Content-Disposition: form-data; name="myfile"; filename="' 
					+ filePath + '"' + '\n' 
				+ 'Content-Type: application/octet-stream' + '\n' 
				+ '\n'
				+ sFileContents
				+ '\n'
				+ boundary;
				alert('requestbody:\n'+requestbody+'\n---------------');
				// do the AJAX request
				var http_request = createXMLHttpRequest();
				http_request.onreadystatechange = function () {			
					requestDone(xmlHttpReq);
				}; 
				http_request.open('POST', action_url, true);
				http_request.setRequestHeader("Cache-Control", "no-cache");
				http_request.setRequestHeader("Pragma", "no-cache");
				http_request.setRequestHeader("Expires", "0");			
				http_request.setRequestHeader("Content-type", "multipart/form-data;boundary=\"" + boundary + "\"");
				http_request.setRequestHeader("Connection", "close");
				http_request.setRequestHeader("Content-length", requestbody.length);
				http_request.send(requestbody);				
				*/
			}
			catch (e) {
				return null;
			}
			finally {
				if (sis)
			  		sis.close();
				if (is)
			  		is.close();
			} 
		} else{
			alert( "file doesn't exists... " );
			return null;
		}
	} else if (window.ActiveXObject){ 
		try{
			// Internet Explorer, create a new XML document using ActiveX and use loadXML as a DOM parser.
		  	xml_dom = new ActiveXObject("MSXML2.DOMDocument"); 
		  	xml_dom.async = false;
		  	xml_dom.loadXML(xmlString);
			//alert('IE browser: '+(xml_dom==null?'document not created':'doc created'));
			var fso = new ActiveXObject("Scripting.FileSystemObject");
			var newFile = fso.OpenTextFile(filePath, 1, false);
        	sFileContents = newFile.ReadAll();
      		newFile.Close();
			newFile = null;
		}
		catch(e){
			if(e.message == "Automation server can't create object")
				alert("In order for this page to upload documents, you must enable the feature to\n'Initialize and script ActiveX controls not marked as safe'\n under security settings for IE.");
			else
				alert(e.message);
		}
	} 	
	
	if(xml_dom != null){
		// specify namespaces datatypes		
		xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes");
			
		var l_node1 = xml_dom.documentElement.childNodes[0];
		var contentNode = xml_dom.createTextNode(sFileContents);
		
		l_node1.setAttribute('name',fileName);
		l_node1.appendChild(contentNode);
		return xml_dom;
	}
	return null;
}

function checkAllRows(frm,objName,status) {
	for(i=0;i<frm.elements.length;i++){
		if(frm.elements[i].name==objName && frm.elements[i].type=='checkbox'){
		   frm.elements[i].checked=status;
		}
	}
}
function isCheckAllRows(frm,objName,objSel) {
	//alert('frm:'+frm.name+'\tobjName:'+objName+'\tobjSel:'+objSel.name);
   var checkedAll=true;
   for(i=0;i<frm.elements.length;i++){
	if(frm.elements[i].name==objName && frm.elements[i].type=='checkbox') {
	   if(frm.elements[i].checked==false && checkedAll==true) {
	     checkedAll=false;
	   }
	}
	objSel.checked=checkedAll;
   }
}

function showHide(titleId, atom){
	var elems = document.getElementsByTagName("tr");
	for(var i=0; i<elems.length; i++){		
		if(elems[i].id==atom) {
			var titleText='';
			var titleDiv = document.getElementById(titleId);
			if(titleDiv != null){
				titleText = titleDiv.innerHTML;
				titleText = titleText.substring(1);
			}				  						
			if(elems[i].style.display=='none'){				
				titleDiv.innerHTML = '-'+titleText; 				
				elems[i].style.display='';
			}				
			else{
				titleDiv.innerHTML = '+'+titleText;
				elems[i].style.display='none';
			}				
		}
	}
}

function trim(sString) {
  	if(sString!='' && sString.indexOf(" ")>=0) {
	  while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	  }
  	}
   	if(sString!='' && sString.indexOf(" ")>=0) {
	  while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	  }
   	}
	return sString;
}

function sendHttpRequest(page_url, params, ct){
	//alert("Sending Http Request: action:"+page_url+"\nparams:"+params);
	//var xmlHttpReq = createXMLHttpRequest();
	var ctype = "text/xml";
    if (ct == undefined)
		ctype = "application/x-www-form-urlencoded";		
	else
		ctype = ct; 
	//alert('ctype:'+ctype);
	
	//if(xmlHttpReq == null)
	xmlHttpReq = createXMLHttpRequest();

	xmlHttpReq.onreadystatechange = function () {			
		requestDone(xmlHttpReq);
	}; 
	xmlHttpReq.open("POST", page_url, true);
	xmlHttpReq.setRequestHeader("Cache-Control", "no-cache");
	xmlHttpReq.setRequestHeader("Pragma", "no-cache");
	xmlHttpReq.setRequestHeader("Expires", "0");
	xmlHttpReq.setRequestHeader("Connection", "close");		
	xmlHttpReq.setRequestHeader("Content-type", ctype);
	xmlHttpReq.send(params);		
}

function requestDone(xmlHttpReq) {			
	if (xmlHttpReq.readyState == XMLHTTPREQUEST_READY_STATE_COMPLETED) {
		if (xmlHttpReq.status == 200) {			
			//alert('request processed. response='+xmlHttpReq.responseXML);
			var response = xmlHttpReq.responseXML.documentElement;
			var status = response.getElementsByTagName('status')[0].childNodes[0].nodeValue;
			//alert("status node value="+response.getElementsByTagName('status')[0].childNodes[0].nodeValue);
			var message = response.getElementsByTagName('message')[0].childNodes[0].nodeValue;
			var reload_page = response.getElementsByTagName('reload')[0].childNodes[0].nodeValue;
			var reloadTree = true; 
			if(response.getElementsByTagName('reloadTree')[0] != null)				
				reloadTree = response.getElementsByTagName('reloadTree')[0].childNodes[0].nodeValue;
			//alert('status:'+status+'\nmessage:'+message+'\nreload:'+reload_page+'\nreloadTree:'+reloadTree);
			if(status == "done" && message != 'blank'){
				if(reloadTree == true || reloadTree == 'true'){
					//alert("reloadTree:"+reloadTree);
					loadMyTree();
				}					
				//document.getElementById("successMsg").innerText = message;
				//document.getElementById("successMsg").style.display='';
				//document.getElementById("successMsg").style.visibility = 'visible';
				//document.getElementById("successMsg").style.display="block";
				//alert('successMsg display: '+document.getElementById("successMsg").style.display);				
				if(reload_page != 'blank'){
					var _reload = reload_page+(reload_page.indexOf("?")==-1?"?":"&")+"successMsg="+message;
					//alert('reloading\n'+_reload+'\n....');
					loadMyContents(_reload);
				} else{
					if(document.getElementById){							
						document.getElementById("errorMsg").style.display='none';
						//alert("b4 innerText="+document.getElementById("successMsg").innerHTML);
						document.getElementById("successMsg").innerHTML = message;
						//alert("af innerText="+document.getElementById("successMsg").innerHTML);
						document.getElementById("successMsg").style.display='';						
					}
				}
			} else if(status == "error" && message != 'blank'){
				if(reload_page != 'blank'){
					var _reload = reload_page+(reload_page.indexOf("?")==-1?"?":"&")+"errorMsg="+message;
					//alert('reloading\n'+_reload+'\n....');
					loadMyContents(_reload);
				} else {
					if(document.getElementById){
						document.getElementById("successMsg").style.display='none';
						document.getElementById("errorMsg").innerHTML = message;
						document.getElementById("errorMsg").style.display='';
						
					}
				}
			} else if(reload_page.indexOf("/login") != -1){
				//var _reload = "document.location.href='"+web_url+"/account/login'";
				eval(reload_page);
			}
		}
		else {
			alert("Error: HTTP " + xmlHttpReq.status + " " + xmlHttpReq.statusText);
		}
	}
}
	 
function displayLink(model) {
	//alert('display link: model='+model);
	//var model = elems['cellModel'].value;		
	document.getElementById("s603").style.display = "none";
	document.getElementById("semidp2").style.display = "none";
	document.getElementById("uiq2").style.display = "none";
	document.getElementById("blackberry").style.display = "none";
	document.getElementById("motorola").style.display = "none";
	if ((model=="Nokia 3230") || (model=="Nokia 3250") || (model=="Nokia 5300") 
		|| (model=="Nokia 6110") || (model=="Nokia 6126") || (model=="Nokia 6131") 
		|| (model=="Nokia 6133") || (model=="Nokia 6233") || (model=="Nokia 6234")
		|| (model=="Nokia 6260") || (model=="Nokia 6265") || (model=="Nokia 6265i")
		|| (model=="Nokia 6270") || (model=="Nokia 6275") || (model=="Nokia 6275i")
		|| (model=="Nokia 6280") || (model=="Nokia 6282") || (model=="Nokia 6288")
		|| (model=="Nokia 6290") || (model=="Nokia 6300") || (model=="Nokia 6600") 
		|| (model=="Nokia 6620") || (model=="Nokia 6630") || (model=="Nokia 6670")
		|| (model=="Nokia 6680") || (model=="Nokia 6681") || (model=="Nokia 6682")
		|| (model=="Nokia 7370") || (model=="Nokia 7373") || (model=="Nokia 7390")
		|| (model=="Nokia 7610") || (model=="Nokia 7710") || (model=="Nokia 9300")
		|| (model=="Nokia 9500") || (model=="Nokia E50") || (model=="Nokia E60")
		|| (model=="Nokia E61") || (model=="Nokia E61i") || (model=="Nokia E62")
		|| (model=="Nokia E65") || (model=="Nokia E70") || (model=="Nokia E90")
		|| (model=="Nokia N70") || (model=="Nokia N71") || (model=="Nokia N72")
		|| (model=="Nokia N73") || (model=="Nokia N75") || (model=="Nokia N76")
		|| (model=="Nokia N77") || (model=="Nokia N80") || (model=="Nokia N90")
		|| (model=="Nokia N91") || (model=="Nokia N92") || (model=="Nokia N93")
		|| (model=="Nokia N93i") || (model=="Nokia N95") )
	{
		document.getElementById("s603").style.display = "block";
	}
	else if ((model=="Sony Ericsson K550") || (model=="Sony Ericsson K600") 
		|| (model=="Sony Ericsson K608") || (model=="Sony Ericsson K610") 
		|| (model=="Sony Ericsson K618") || (model=="Sony Ericsson K700")
		|| (model=="Sony Ericsson K750") || (model=="Sony Ericsson K790")
		|| (model=="Sony Ericsson K800") || (model=="Sony Ericsson K810")
		|| (model=="Sony Ericsson S700") || (model=="Sony Ericsson V600")
		|| (model=="Sony Ericsson W550") || (model=="Sony Ericsson W600")
		|| (model=="Sony Ericsson W610") || (model=="Sony Ericsson W700")
		|| (model=="Sony Ericsson W710") || (model=="Sony Ericsson W800") 
		|| (model=="Sony Ericsson W810") || (model=="Sony Ericsson W830")
		|| (model=="Sony Ericsson W850") || (model=="Sony Ericsson W880")
		|| (model=="Sony Ericsson W900") || (model=="Sony Ericsson Z550")
		|| (model=="Sony Ericsson Z558") || (model=="Sony Ericsson Z610")
		|| (model=="Sony Ericsson Z710") ) 
	{
		document.getElementById("semidp2").style.display = "block";
	}		
	else if ((model=="Sony Ericsson M600") || (model=="Sony Ericsson P900") 
		|| (model=="Sony Ericsson P910") || (model=="Sony Ericsson P990")
		|| (model=="Sony Ericsson W950") )
	{
		document.getElementById("uiq2").style.display = "block";
	} 
	else if ((model=="BlackBerry 5790") || (model=="BlackBerry 6210")  
	|| (model=="BlackBerry 6220") || (model=="BlackBerry 6230")
	|| (model=="BlackBerry 6280") || (model=="BlackBerry 6510")
	|| (model=="BlackBerry 6710") || (model=="BlackBerry 6720")
	|| (model=="BlackBerry 650") || (model=="BlackBerry 7100")
	|| (model=="BlackBerry 7105") || (model=="BlackBerry 7130")
	|| (model=="BlackBerry 7230") || (model=="BlackBerry 7250")
	|| (model=="BlackBerry 7270") || (model=="BlackBerry 7280")
	|| (model=="BlackBerry 7290") || (model=="BlackBerry 7510")
	|| (model=="BlackBerry 7520") || (model=="BlackBerry 7730")
	|| (model=="BlackBerry 7750") || (model=="BlackBerry 7780")
	|| (model=="BlackBerry 8700") || (model=="BlackBerry 8703")
	|| (model=="BlackBerry 8705") || (model=="BlackBerry 8800")
	|| (model=="BlackBerry Pearl") )
	{
		document.getElementById("blackberry").style.display = "block";
	}
	else if (model=="Motorola RAZR V3")
	{
		document.getElementById("motorola").style.display = "block";
	}	
};
// Linked select elements, data table
function initLinkedSelect(from,to) {
	/* Array for storing option text/value pairs */
  	var options = new Array();
  	/* Make manufacturer select visible */
  	(from.style || from).visibility = "visible";
  	for (var i=0; i < to.options.length; i++) {
		/* Save text and value of original options */
		options[i] = new Array(to.options[i].text,to.options[i].value);
  	}
  	/* When the country selection changes... */
  	from.onchange = function() {
		/* The code for the selected manufacturer */
		var fromCode = from.options[from.selectedIndex].value;
		/* Remove current options */
		to.options.length = 0;
		/* Run throught all options... */
		for (i = 0; i < options.length; i++) {
	  		/* If the option starts with the selected manucfaturer code */
	  		if (options[i][1].indexOf(fromCode) == 0) {
				/* Add the option to the model select */
				to.options[to.options.length] = new Option(options[i][0],options[i][1]);
	  		}
		}
		/* Select the first of the new options */
		to.options[0].selected = true;
	};
  	/* Update the model select now */
  	from.onchange();
};
