/*
	parentree.js is the start of an initiative to make one comprehensive JS file for Parentree 
	It now includes the following
		Older JS file (for legacy reasons): functions.js
		Older JS file (for legacy reasons): errormsg.js
		Older JS file (for legacy reasons): hideelt.js

	It also includes the following libraries
		Clickheat - clickheat.js

	Added functions
		urlencode from php.js
		max from php.js
*/


//Begin old functions.js

function checkMail(email)
{ 	
      if(email=="")
      {
          alert("Please enter your email address.");
	 	  return false;
      }
      
      if(email.indexOf("@")<1||email.indexOf(".")<3)
      {
        	 alert("Please enter a valid email address.");
	 		return false;
      }

      return true;
}

function confirmAction(frm)
{
   if(confirm("Are you sure?"))
   {
      frm.submit();
   }
   return true;
}

function centerWin(filename,width,height,name)
{
   var x=(screen.availWidth-width)/2;
   var y=(screen.availHeight-height)/2-50;

   if(name="") name='win'

   newWin=window.open(filename, name,"width=10,height=10, scrollbars=yes, resizable=yes");
   newWin.moveTo(x,y);
   newWin.resizeTo(width,height);
}


function confirmDelete(frm)
{	
	if(confirm("Are you sure"))
	{
		frm.del.value=1;
		frm.submit();
	}
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function displayElt(evt,eid)
{   
    elt=document.getElementById(eid);
           
    var scrolls= getScrollXY();
                   var centerY=scrolls[1] + (screen.height/4);
    var centerX=scrolls[0] + (screen.width/4);
    
	x=(elt.style.width).slice(0,-2);
	y=(elt.style.height).slice(0,-2);
	
    elt.style.top=(centerY+(y/2))+"px";
    elt.style.left=(centerX+(x/2))+"px";
	 elt.style.display='block';
}

function displayElt1(evt,eid)
{
	var b = document.body;
	
	if(evt.x>0)
	{
		var x=evt.x;
		var y=evt.y +  b.scrollTop; 
	}
	else
	{		
		var x=evt.clientX;
		var y=evt.clientY;
	}
	
	elt=document.getElementById(eid);
	
	var wid=parseInt(elt.style.width);  	
	var hei=parseInt(elt.style.height);  	
	if(typeof(wid)=='undefined') var wid=200; 
	if(typeof(hei)=='undefined') var hei=200;
	  
	if(y > ((screen.height/2) + hei) )
	{
	 	elt.style.top=y+"px";
    }
	else
	{	
		var posY=y-hei;		
   		elt.style.top=posY+"px";
	}
	
	
	if(x < ((screen.width/2) + wid))
	{		
	    elt.style.left=x+"px";
    }
	else
	{	
		var posX=x-wid;		
	    elt.style.left=posX+"px";  
    }
    
	elt.style.display='block';
}


function hideElt(elt)
{
	elt.style.display='none';
}

function hideElt1(eid)
{
	elt=document.getElementById(eid);
	elt.style.display='none';
}


function ajax_call(url,form_id,response_id,callback)
{
	var frm=$(form_id);
	var params=Form.serialize(frm);
	
	new Ajax.Request(url,
  {
    method:'post',
    parameters: {ajax: '1', request: escape(params) },
    onSuccess: function(transport)
    {
	    var response = transport.responseText || "no response text";  
	    
        if(callback=='') 
        {
	        $(resonse_id).innerHTML=response;	      	      	      	      
	        transport.responseText.evalScripts();
        }
        else
        {
	        //run callback function 
	        eval(callback+"(\"" + response + "\") ");
        }
    },
    onFailure: function()
    { 
	    alert('Something went wrong...') 
	}
  }); 
}
function popupdetails(obj)
    {
        if(obj==true)
        {
//            document.getElementById(popup).style.display=''; 
document.getElementById('divDisable').style.display='';
//$('#divDisable').fadeIn(500,0.5);
            document.getElementById('divDisable').style.height = document.body.scrollHeight + "px";
            document.getElementById('divDisable').style.width = document.body.scrollWidth + "px";
        }
        else
        {
           document.getElementById('divDisable').style.display='none';
   //document.getElementById(popup).style.display='none';  
  //$('#divDisable').fadeOut(1500,0.5);
        }
        return false;
    }

function showHideMenuNode(node_id,image_id){

   imgid="img"+node_id;
   ship = document.getElementById(node_id);
   img = document.getElementById(imgid);
   if(ship){
         //alert(node_id);
       ship.style.display = ship.style.display == "none" ? "block" : "none";
       if(img)
       {
           img.src = ship.style.display == "none" ? "images/plus.gif" : "images/minus.gif";
       }
   }
}

//select all none checkbox
function SetAllCheckBoxes(form, chkbox, CheckValue)
{
	if(!document.forms[form])
	    return;

    var objCheckBoxes = document.forms[form].elements;
				
    if(!objCheckBoxes)
		return;

	var countCheckBoxes = objCheckBoxes.length;
	//alert(countCheckBoxes);

	if(!countCheckBoxes)
	   {
		objCheckBoxes.checked = CheckValue;
	   }
	else
	  {
		// set the check value for all check boxes
		for(var i = 0; i < countCheckBoxes; i++)
		 objCheckBoxes[i].checked = CheckValue;
	  }
}

function returnSerialized(form)
{
	var form =document.forms[form];
	var els = form.elements;
	var len=els.length;
	var ar = new Array();
	var j =0;
 	for(i=0; i<len; i++)
	if(els[i].type == "checkbox" && els[i].name == "ids[]" &&  els[i].checked==true )
 	ar[j++] = els[i].value;
    var arr_csv ="";
	if(ar.length >0){
   	arr_csv= ar[0];
	for(i=0; i < ar.length; i++)
	arr_csv=arr_csv+","+ar[i];
	}
    return arr_csv;
 }
 
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function change(e, color){
var el=window.event? event.srcElement: e.target
if (el.tagName=="INPUT"&&(el.type=="submit"||el.type=="button"))
el.style.color=color;
}
//End old functions.js
//Begin old errormsg.js
	/******************************************************************************************************
		This is file which contains the Client side error messages for the whole.
		Every Error is coming from here on the site and if we will change the message
		here, it will reflect on the site/
	/*****************************************************************************************************/
var ErrMsg=new Array();

//Journal Publish Post page
ErrMsg['JournalTitle']="Please enter your Journal Title";
ErrMsg['JournalPost']="Please enter your Journal Post";
ErrMsg['JournalTitleUnique']="title name already exists";

//Journal main page 
ErrMsg['JournalCommentLoginCheck']="Please login to post comment";
ErrMsg['JournalComment']="Please enter your comment";
ErrMsg['JournalThumbRateLoginCheck']="Please login to rate this post";
ErrMsg['JournalThumbLoginCheck']="Please login to report abuse";
ErrMsg['JournalAbuse']="Please enter your reason";

//Journal Customize Journal Page
ErrMsg['JournalCustomizeLoginCheck']="Please login to customize your journal";

//Main Registration Page
ErrMsg['Firstname']="Please enter your first name";
ErrMsg['Lastname']="Please enter your last name";
ErrMsg['Nickname']="Please enter your nickname";
ErrMsg['Email']="Please enter your email address.";
ErrMsg['Validemail']="Please enter a valid email address.";
ErrMsg['Password']="Please enter your password";
ErrMsg['Confirmpass']="Please confirm your password";
ErrMsg['Repassword']="Password and confirm password should be the same";
ErrMsg['Country']="Please select your country";
ErrMsg['Tos']="Please accept Terms of Service and Code of Conduct";
ErrMsg['Captcha']="Please enter the numbers shown in the image";
ErrMsg['Captchatext']="Numbers entered do not match numbers in the image";
ErrMsg['gender']="Please select your gender";
ErrMsg['City']="Please enter your city";
//ForgotPassword page
ErrMsg['Forgotpassword']="Please enter email address";
ErrMsg['EnterNick Name/Email']="Please enter email address or nickname to login";
ErrMsg['Enter Password']="Please enter password";

//Change Password Page
ErrMsg['curpass']="Please enter your current password";
ErrMsg['newpass']="Please fill your new password!!";
ErrMsg['cnewpass']="Please confirm your new password!!";
ErrMsg['changepass']="Your password has been changed!!";
ErrMsg['incorrectchangepass']="Password mismatch.Password not changed. Please try again.";
ErrMsg['deletemsg']="Are you really want to delete your profile from parentree? All the data (Profile, Journal and Group Membership) will be deleted from the site permanently.";
//Group Page
ErrMsg['GroupLoginCheck']="Please login to Join Group";
ErrMsg['GroupDiscussionLoginCheck']="Please login to discuss in this group";
ErrMsg['GroupName']="Please enter your Group Name";
ErrMsg['AboutGroup']="Please enter About Group";
ErrMsg['GroupRules']="Please enter Rules of the Group";
ErrMsg['JoinedSuccess']="u r now member of this group";
ErrMsg['JoinedAlready']="U are already a member of this group";
ErrMsg['GroupMemberDelete']="Are you sure you want to delete this member";
ErrMsg['MemberDelete']="Are you sure you want to quit the group";
//ErrMsg['MemberDeleteAdmin']="Are you sure you want to leave/quit the group";



//Group Discussion Page
ErrMsg['GroupDiscussionTitle']="Please enter your group discussion title";
ErrMsg['GroupDiscussionPurpose']="Please enter your group discussion purpose";
ErrMsg['GroupDiscussionDelete']="Are you sure you want to delete this discussion";
ErrMsg['GroupDiscussionUnique']="Discussion title already exists";
ErrMsg['GroupDiscussionPostDelete']="Are you sure you want to delete this discussion post";
ErrMsg['GroupDiscussionThumbRateLoginCheck']="Please login to rate this discussion";
ErrMsg['GroupDiscussionPostThumbRateLoginCheck']="Please login to rate this discussion post";
ErrMsg['GroupDiscussionReason']="Please enter your reason";
ErrMsg['GroupDiscussionAbuseLoginCheck']="Please login to report on this discussion";
ErrMsg['GroupDiscussionPostAbuseLoginCheck']="Please login to report on this discussion post";
ErrMsg['GroupDiscussionLoginCheck']="Please login to post discussion";
ErrMsg['query']="Please fill in your query";
//Product Page
ErrMsg['Productname']="Please enter your product name";
ErrMsg['Manufacturer']="Please enter the Manufacturer";
ErrMsg['Category']="Please select the category";
ErrMsg['Review']="Please enter the review";
ErrMsg['productComment']="Please enter your review";
ErrMsg['productCommentLoginCheck']="Please login to post Review";
ErrMsg['productDeleteConfirm']="Do you want to delete selected products.";
ErrMsg['SelectProduct']="Select atleast one product";
ErrMsg['prddesc']="Please Enter Description";
ErrMsg['prdgroup']="Please select at least one age group";

//Service page
ErrMsg['Servicename']="Please enter the service name";
ErrMsg['city']="Please enter the city";
ErrMsg['state']="Please enter the state";
ErrMsg['ServiceDescription']="Please enter the service description";
ErrMsg['Telephone']="Please enter your Telephone number";
ErrMsg['Telephonenumber']="Invalid Phone number";
ErrMsg['Postalcode']="Please enter the Postal code";
ErrMsg['Postalcodenumber']="Invalid Postal code";
ErrMsg['Category']="Please select a category";
ErrMsg['ServicesThumbRateLoginCheck']="Please login to rate the Product/service";

//Review Page
ErrMsg['SelectThumbRate']="Please select a rating";
ErrMsg['CheckAgeGroup']="Please select at least one age group";
ErrMsg['reviewAbuse']="Please enter your reason";

//Friends Page
ErrMsg['SelectActivity']="Please select any activity";
ErrMsg['inviteLoginCheck']="Please login to invite";
ErrMsg['inviteNickname']="Please enter nickname";
ErrMsg['inviteMessage']="Please enter message";

//Inbox Page
ErrMsg['SelectMsg']="Please select any message";

//********************************    ADMIN PAGES *********************//

//Admin manage templates page
ErrMsg['SelectTemplate']="Please select template";
ErrMsg['EnterTemplateName']="Please enter template name";
ErrMsg['EnterCSSCode']="Please enter css code";
ErrMsg['TemplateUploadThumbImage']="Please upload thumb image";
ErrMsg['TemplateUploadImage']="Please upload image";

//Admin delete journal post page
ErrMsg['SelectJournalPost']="Please select anyone of the Post";

//Admin add topic page
ErrMsg['CheckPostTopic']="Please enter your Topic";
ErrMsg['TopicUnique']="topic name already exists";


//Admin Users Page
ErrMsg['selectusers']="Please select atleast one user";
ErrMsg['deladminphotos']="Are you sure you want to delete this photo?";

//Admin manage messages page
ErrMsg['MessageSubject']="Please enter your Subject";
ErrMsg['Message']="Please enter your Message";
ErrMsg['MessageUsers']="Please select any one of the user";

//Category Page for Services
ErrMsg['SelectCategory']="Please select the category";
ErrMsg['Categorydelete']="Do you want to delete selected categories";
ErrMsg['CatServiceadd']="Please Enter Category Name";

//Admin Manage Abuse Reports
ErrMsg['Groupabuse']="Please Select atleast one Record";
ErrMsg['Journalabuse']="Please Select atleast one Record";
ErrMsg['Serviceabuse']="Please Select atleast one Record";
ErrMsg['Acceptdel']="Please Select atleast one Record";
ErrMsg['Declinedel']="Please Select atleast one Record";

//Admin Manage Groups
ErrMsg['ManageGroups']="Please Select atleast one Record";
ErrMsg['Managegrouppopup']="Please Select atleast one Record";

//Admin Manage Reviews
ErrMsg['DelReview']="Please Select atleast one Review";

//Admin Manage Service
ErrMsg['ManageService']="Please Select one Record";

//Admin ProfileImage
ErrMsg['ImageAdd']="Please Select an Image";

//Admin Groups Page for Services
ErrMsg['ServiceGroupadd']="Please Enter Group Name";

//End old errormsg.js
//Begin old hideelt.js

document.onkeyup = alertkey;
function alertkey(e) {
if( !e ) {
if( window.event ) {
//DOM
e = window.event;
} else {

return;
}
}
if( typeof( e.which ) == 'number' ) {
//NS 4, NS 6+, Mozilla 0.9+, Opera
e = e.which;

} else if( typeof( e.keyCode ) == 'number' ) {
//IE, NS 6+, Mozilla 0.9+
e = e.keyCode;
;
} else if( typeof( e.charCode ) == 'number' ) {

e = e.charCode;

} else {

return;
}
/*
if(e=='27'){
hideElt1('forgotpass');
popupdetails('false');
return false;
}
*/
var cnt=0;
var cntTxt =0;
}
//End old hideelt.js


//Begin fucntions from php.js
function urlencode( str ) {
    // URL-encodes string  
    // 
    // version: 905.3122
    // discuss at: http://phpjs.org/functions/urlencode
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    //           note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=com.ubuntu:en-US:unofficial&amp;client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
                             
    var histogram = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);

    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}


function max() {
    // Return the highest value in an array or a series of arguments  
    // 
    // version: 905.1001
    // discuss at: http://phpjs.org/functions/max
    // +   original by: Onno Marsman
    // +    revised by: Onno Marsman
    // +    tweaked by: Jack
    // %          note: Long code cause we're aiming for maximum PHP compatibility
    // *     example 1: max(1, 3, 5, 6, 7);
    // *     returns 1: 7
    // *     example 2: max([2, 4, 5]);
    // *     returns 2: 5
    // *     example 3: max(0, 'hello');
    // *     returns 3: 0
    // *     example 4: max('hello', 0);
    // *     returns 4: 'hello'
    // *     example 5: max(-1, 'hello');
    // *     returns 5: 'hello'
    // *     example 6: max([2, 4, 8], [2, 5, 7]);
    // *     returns 6: [2, 5, 7]
    var ar, retVal, i = 0, n = 0;
    var argv = arguments, argc = argv.length;

    var _obj2Array = function(obj) {
        if (obj instanceof Array) {
            return obj;
        } else {
            var ar = [];
            for (var i in obj) {
                ar.push(obj[i]);
            }
            return ar;
        }
    }; //function _obj2Array
    
    var _compare = function(current, next) {
        var i = 0, n = 0, tmp = 0;
        var nl = 0, cl = 0;
        
        if (current === next) {
            return 0;
        } else if (typeof current == 'object') {
            if (typeof next == 'object') {
               current = _obj2Array(current);
               next    = _obj2Array(next);
               cl      = current.length;
               nl      = next.length;
               if (nl > cl) {
                   return 1;
               } else if (nl < cl) {
                   return -1;
               } else {
                   for (i = 0, n = cl; i<n; ++i) {
                       tmp = _compare(current[i], next[i]);
                       if (tmp == 1) {
                           return 1;
                       } else if (tmp == -1) {
                           return -1;
                       }
                   }
                   return 0;
               }
            } else {
               return -1;
            }
        } else if (typeof next == 'object') {
            return 1;
        } else if (isNaN(next) && !isNaN(current)) {
            if (current == 0) {
               return 0;
            } else {
               return (current<0 ? 1 : -1);
            }
        } else if (isNaN(current) && !isNaN(next)) {
            if (next==0) {
               return 0;
            } else {
               return (next>0 ? 1 : -1);
            }
        } else {
            if (next==current) {
               return 0;
            } else {
               return (next>current ? 1 : -1);
            }
        }
    }; //function _compare
    
    if (argc === 0) {
        throw new Error('At least one value should be passed to max()');
    } else if (argc === 1) {
        if (typeof argv[0] === 'object') {
            ar = _obj2Array(argv[0]);
        } else {
            throw new Error('Wrong parameter count for max()');
        }
        if (ar.length === 0) {
            throw new Error('Array must contain at least one element for max()');
        }
    } else {
        ar = argv;
    }
    
    retVal = ar[0];
    for (i=1, n=ar.length; i<n; ++i) {
        if (_compare(retVal, ar[i])==1) {
            retVal = ar[i];
        }
    }
    
    return retVal;
}
//End functions from php.js

//When showing external links in an iframe using ext.php
function ext_ResizeIframe()
{
  var  myHeight = 0;
  if( typeof( window.innerHeight ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }

//Get the height of the extpage-header element
	headerheight=$('extpage-header-row').getHeight();
	iframeNewHeight=myHeight-headerheight-10;
//	alert("Win-"+myHeight+"-Hdr-"+headerheight+"-ifr-"+iframeNewHeight);
	$('extpage-content-iframe').setStyle({ height: iframeNewHeight+"px" });

}

function ext_setObserveEvents()
{
	Event.observe(window,'load',function(){ext_ResizeIframe()});
	Event.observe(window,'resize',function(){ext_ResizeIframe()});
}

// Begin clickheat.js code
/** Code by www.labsmedia.com */var clickHeatGroup="";var clickHeatSite="";var clickHeatServer="";var clickHeatLastIframe=-1;var clickHeatTime=0;var clickHeatQuota=-1;var clickHeatBrowser="";var clickHeatDocument="";var clickHeatWait=500;var clickHeatLocalWait=0;var clickHeatDebug=(window.location.href.search(/debugclickheat/)!==-1);function showClickHeatDebug(a){if(clickHeatDebug===true){document.getElementById("clickHeatDebuggerSpan").innerHTML=a;document.getElementById("clickHeatDebuggerDiv").style.display="block"}}function catchClickHeat(l){try{showClickHeatDebug("Gathering click data...");if(clickHeatQuota===0){showClickHeatDebug("Click not logged: quota reached");return true}if(clickHeatGroup===""){showClickHeatDebug("Click not logged: group name empty (clickHeatGroup)");return true}if(l===undefined){l=window.event;c=l.button;element=l.srcElement}else{c=l.which;element=null}if(c===0){showClickHeatDebug("Click not logged: no button pressed");return true}if(element!==null&&element.tagName.toLowerCase()==="iframe"){if(element.sourceIndex===clickHeatLastIframe){showClickHeatDebug("Click not logged: same iframe (a click on iframe opens a popup and popup is closed => iframe gets the focus again)");return true}clickHeatLastIframe=element.sourceIndex}else{clickHeatLastIframe=-1}var o=l.clientX;var n=l.clientY;var p=clickHeatDocument.clientWidth!==undefined?clickHeatDocument.clientWidth:window.innerWidth;var k=clickHeatDocument.clientHeight!==undefined?clickHeatDocument.clientHeight:window.innerHeight;var j=window.pageXOffset===undefined?clickHeatDocument.scrollLeft:window.pageXOffset;var g=window.pageYOffset===undefined?clickHeatDocument.scrollTop:window.pageYOffset;if(o>p||n>k){showClickHeatDebug("Click not logged: out of document (should be a click on scrollbars)");return true}clickTime=new Date();if(clickTime.getTime()-clickHeatTime<1000){showClickHeatDebug("Click not logged: at least 1 second between clicks");return true}clickHeatTime=clickTime.getTime();if(clickHeatQuota>0){clickHeatQuota=clickHeatQuota-1}params="s="+clickHeatSite+"&g="+clickHeatGroup+"&x="+(o+j)+"&y="+(n+g)+"&w="+p+"&b="+clickHeatBrowser+"&c="+c+"&random="+Date();showClickHeatDebug("Ready to send click data...");var m=false;if(clickHeatServer.substring(0,4)!=="http"){var d=false;try{d=new ActiveXObject("Msxml2.XMLHTTP")}catch(r){try{d=new ActiveXObject("Microsoft.XMLHTTP")}catch(a){d=null}}if(!d&&typeof XMLHttpRequest!==undefined){d=new XMLHttpRequest()}if(d){if(clickHeatDebug===true){d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){showClickHeatDebug("Click recorded at "+clickHeatServer+" with the following parameters:<br />x = "+(o+j)+" ("+o+"px from left + "+j+"px of horizontal scrolling)<br />y = "+(n+g)+" ("+n+"px from top + "+g+"px of vertical scrolling)<br />width = "+p+"<br />browser = "+clickHeatBrowser+"<br />click = "+c+"<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+"<br /><br />Server answer: "+d.responseText)}else{if(d.status===404){showClickHeatDebug("click.php was not found at: "+(clickHeatServer!==""?clickHeatServer:"/clickheat/click.php")+" please set clickHeatServer value")}else{showClickHeatDebug("click.php returned a status code "+d.status+" with the following error: "+d.responseText)}}clickHeatLocalWait=0}}}d.open("GET",clickHeatServer+"?"+params,true);d.setRequestHeader("Connection","close");d.send(null);m=true}}if(m===false){if(clickHeatDebug===true){showClickHeatDebug("Click recorded at "+clickHeatServer+" with the following parameters:<br />x = "+(o+j)+" ("+o+"px from left + "+j+"px of horizontal scrolling)<br />y = "+(n+g)+" ("+n+"px from top + "+g+"px of vertical scrolling)<br />width = "+p+"<br />browser = "+clickHeatBrowser+"<br />click = "+c+"<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+'<br /><br />Server answer:<br /><iframe src="'+clickHeatServer+"?"+params+'" width="700" height="60"></iframe>')}else{var q=new Image();q.src=clickHeatServer+"?"+params}}var b=new Date();clickHeatLocalWait=b.getTime()+clickHeatWait;
while(clickHeatLocalWait>b.getTime()){b=new Date()}}catch(f){showClickHeatDebug("An error occurred while processing click (Javascript error): "+l.message)}return true}function initClickHeat(){if(clickHeatDebug===true){document.write('<div id="clickHeatDebuggerDiv" style="padding:5px; display:none; position:absolute; top:10px; left:10px; border:1px solid #888; background-color:#eee; z-index:99;"><strong>ClickHeat debug: <a href="#" onmouseover="document.getElementById(\'clickHeatDebuggerDiv\').style.display = \'none\'; return false">Rollover to close</a></strong><br /><br /><span id="clickHeatDebuggerSpan"></span></div>')}if(clickHeatGroup===""||clickHeatServer===""){showClickHeatDebug("ClickHeat NOT initialised: either clickHeatGroup or clickHeatServer is empty");return false}domain=window.location.href.match(/http:\/\/[^/]+\//);if(domain!==null&&clickHeatServer.substring(0,domain[0].length)===domain[0]){clickHeatServer=clickHeatServer.substring(domain[0].length-1,clickHeatServer.length)}if(document.addEventListener){document.addEventListener("mousedown",catchClickHeat,false)}else{if(document.attachEvent){document.attachEvent("onmousedown",catchClickHeat)}}iFrames=document.getElementsByTagName("iframe");for(i=0;i<iFrames.length;i++){if(document.addEventListener){iFrames[i].addEventListener("focus",catchClickHeat,false)}else{if(document.attachEvent){iFrames[i].attachEvent("onfocus",catchClickHeat)}}}clickHeatDocument=(document.documentElement!==undefined&&document.documentElement.clientHeight!==0)?document.documentElement:document.body;var a=navigator.userAgent!==undefined?navigator.userAgent.toLowerCase().replace(/-/g,""):"";clickHeatBrowser=a.replace(/iceweasel/,"firefox").replace(/^.*(firefox|kmeleon|safari|msie|opera).*$/,"$1");if(a===clickHeatBrowser||clickHeatBrowser===""){clickHeatBrowser="unknown"}showClickHeatDebug("ClickHeat initialised with:<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+"<br />server = "+clickHeatServer+"<br />quota = "+(clickHeatQuota===-1?"unlimited":clickHeatQuota)+"<br /><br />browser = "+clickHeatBrowser)};
// End clickheat code

//Parentree new sfunctions
function iprofile_toggletext(qid)
{
	if($(qid).hasClassName('iprofiler-question-text')){
		$(qid).addClassName('iprofiler-question-text-large');
		$(qid).removeClassName('iprofiler-question-text');
		$('iprofiler-answer').style.display="none";
		document.getElementById("iprofiler-error-text").innerHTML="&nbsp; ";
		
	}
	else {
		$(qid).addClassName('iprofiler-question-text')
		$(qid).removeClassName('iprofiler-question-text-large')
		$('iprofiler-answer').style.display="none";
		document.getElementById("iprofiler-error-text").innerHTML="&nbsp;";
	}
}

function iprofile_go()
{

	var logic=0;
	var spati=0;
	var music=0;
	var kines=0;
	var inter=0;
	var intra=0;
	var lingu=0;
	var natur=0;
	selquestions=$$('.iprofiler-question-text-large');
	selquestions=$('iprofiler').select('[class="iprofiler-question-text-large"]');
	if(selquestions.length==0) {
		var user_message="You have not selected any of the statements above. Please select a few that apply to your child, before clicking Go";
		document.getElementById("iprofiler-error-text").innerHTML=user_message;
	}
	else
	{
		for(i=0;i<selquestions.length;i++)
		{	
			type=selquestions[i].id.substr(0,5);
			switch(type){
				case "logic":
					logic++;
					break;
				case "spati":
					spati++;
					break;
				case "music":
					music++;
					break;
				case "kines":
					kines++;
					break;
				case "inter":
					inter++;
					break;
				case "intra":
					intra++;
					break;
				case "lingu":
					lingu++;
					break;
				case "natur":
					natur++;
					break;
				}
		}
		var maxvalue=max(logic,spati,music,kines,inter,intra,lingu,natur);
		var multiplier=(4/maxvalue)*75;

		document.getElementById("logic-bar").style.width=(logic*multiplier)+"px";
		document.getElementById("spati-bar").style.width=(spati*multiplier)+"px";
		document.getElementById("music-bar").style.width=(music*multiplier)+"px";
		document.getElementById("kines-bar").style.width=(kines*multiplier)+"px";
		document.getElementById("inter-bar").style.width=(inter*multiplier)+"px";
		document.getElementById("intra-bar").style.width=(intra*multiplier)+"px";
		document.getElementById("lingu-bar").style.width=(lingu*multiplier)+"px";
		document.getElementById("natur-bar").style.width=(natur*multiplier)+"px";
		Effect.Appear('iprofiler-answer', {duration: 2.0, queue: 'front'});
		Effect.ScrollTo('iprofiler-scrollto', {duration: 2.0, queue: 'end'});
	}
}
function join_checkemail()
{ 
  
   var email=document.getElementById('email').value;
   new Ajax.Request(site_url+"index.php?action=join&do=uniquness",
  {
    method:'post',  
    parameters: {ajax: 1, type: 'email', email: email},    
    onSuccess: function(transport)
    {
	var result=transport.responseText.evalJSON(); 
    	var response = result.feedback || "Activation email will be sent here";  
	$('email-msg').innerHTML=response; 
	if(result.errorflag==1) {
		$('email-msg').setStyle({
			color: '#FF0000'
		});
		$('join-error-email').setStyle({
			display: 'block'
		});
	} else {
		$('email-msg').setStyle({
			backgroundColor: '',
			color: ''
		});
		$('join-error-email').setStyle({
			display: 'none'
		});
	}
    }
  });
}

function join_checkpass()
{
	
   var pass=document.getElementById('password').value;
   var cpass=document.getElementById('confirmpassword').value;

	$('join-error-password').setStyle({
		display: 'none'
	});
	$('join-error-confirmpassword').setStyle({
		display: 'none'
	});
	$('confirmpassword-msg').setStyle({
			color: ''
	});
	$('password-msg').setStyle({
			color: ''
	});

  if(pass.length < 8 && pass.length > 0){
	$('join-error-password').setStyle({
		display: 'block'
	});
	$('password-msg').setStyle({
			color: '#FF0000'
	});
	document.getElementById('password-msg').innerHTML="Too short. Minimum 8 characters"; 
	}
   else if(pass=="" || cpass==""){
	document.getElementById('confirmpassword-msg').innerHTML="&nbsp;"; 
	}
   else if(pass!=cpass){
	$('join-error-confirmpassword').setStyle({
		display: 'block'
	});
	$('confirmpassword-msg').setStyle({
			color: '#FF0000'
	});
	document.getElementById('confirmpassword-msg').innerHTML="Passwords do not match";
	}
   else  if(pass==cpass){
	document.getElementById('confirmpassword-msg').innerHTML="Passwords match";
	}
   else
   	document.getElementById('confirmpassword-msg').innerHTML="&nbsp;";
}

function join_clearcaptchamsg()
{
	document.getElementById('captcha-msg').innerHTML="&nbsp;";
}



function join_validate()
{
	var email=document.getElementById('email').value;
	var password=document.getElementById('password').value;
	var confirmpassword=document.getElementById('confirmpassword').value;
	var captcha=document.getElementById('captcha').value;
	var captchaword=document.getElementById('cmatch').innerHTML;
	var pregmail=document.getElementById('pregmail').value;
	var pregmon=document.getElementById('pregmon').value;
	var pregday=document.getElementById('pregday').value;
	var pregyear=document.getElementById('pregyear').value;
	var gcdobyear=document.getElementById('gcdobyear').value;
	var gcdobmonth=document.getElementById('gcdobmonth').value;
	var gcdobday=document.getElementById('gcdobday').value;
	var gcchildname=document.getElementById('gcchildname').value;
	var gcchildgender=document.getElementById('gcchildgender').value;
	var gcchildheight=document.getElementById('gcchildheight').value;
	var gcchildweight=document.getElementById('gcchildweight').value;
	var growthchart=document.getElementById('growthchart').value;
	$('join-error-email').setStyle({
		display: 'none'
	});
	$('email-msg').setStyle({
		color: ''
	});
	$('join-error-password').setStyle({
		display: 'none'
	});
	$('password-msg').setStyle({
		color: ''
	});
	$('join-error-confirmpassword').setStyle({
		display: 'none'
	});
	$('confirmpassword-msg').setStyle({
		color: ''
	});
	$('join-error-captcha').setStyle({
		display: 'none'
	});
	$('captcha-msg').setStyle({
		color: ''
	});
	document.getElementById('joinbutton').innerHTML="\<img src=\"/images\/spinner.gif\" height=\"32px\"\>";
	new Ajax.Request(site_url+"index.php?action=join",
	{
		method:'post',
		parameters: {ajax: 1, submitted: 1, email: email, password: password, confirmpassword: confirmpassword, captcha: captcha, captchaword: captchaword, pregmail: pregmail, pregmon: pregmon, pregday: pregday, pregyear:pregyear, gcdobyear: gcdobyear, gcdobmonth: gcdobmonth, gcdobday: gcdobday, gcchildname: gcchildname, gcchildgender: gcchildgender, gcchildheight: gcchildheight, gcchildweight: gcchildweight, growthchart: growthchart},
		onSuccess: function(transport)
		{
			var result=transport.responseText.evalJSON(); 
			if(result.allvalid==1) {
				self.location.href=site_url+"activate.html";
			} else {
				document.getElementById('email-msg').innerHTML=result.emailmsg || "Activation email will be sent here";
				document.getElementById('password-msg').innerHTML=result.passwordmsg || "&nbsp;";
				document.getElementById('confirmpassword-msg').innerHTML=result.confirmpasswordmsg || "&nbsp;";
				document.getElementById('captcha-msg').innerHTML=result.captchamsg || "&nbsp;";
				document.getElementById('cmatch').innerHTML=result.capword;
				document.getElementById('join-captcha-image').innerHTML=result.capimage;
				document.getElementById('captcha').value="";
				if(result.captchavalid==0) {
					$('join-error-captcha').setStyle({
						display: 'block'
					});
					$('captcha-msg').setStyle({
						color: '#FF0000'
					});
				}
				if(result.passwordvalid==0) {
					$('join-error-password').setStyle({
						display: 'block'
					});
					$('password-msg').setStyle({
						color: '#FF0000'
					});
				}
				if(result.confirmpasswordvalid==0) {
					$('join-error-confirmpassword').setStyle({
						display: 'block'
					});
					$('confirmpassword-msg').setStyle({
						color: '#FF0000'
					});
				}
				if(result.emailvalid==0) {
					$('join-error-email').setStyle({
						display: 'block'
					});
					$('email-msg').setStyle({
						color: '#FF0000'
					});
				}
				document.getElementById('joinbutton').innerHTML="\<input\ type\=\"submit\"\ class\=\"join-submit-button\"\ style\=\"width:\ 100px\;\"\ value\=\"Join\"\ onclick\=\"join_validate\(\)\;\"/\>";
			}
		}
	});
	return false;
}


function setup_checknickname(nicknameid,feedbackid)
{
	var nickname=document.getElementById(nicknameid).value;	
	if(!nickname.blank()) {
		$('setup-error-nickname').setStyle({
			display: 'none'
		});
		$(feedbackid).setStyle({
			color: ''
		});
		new Ajax.Request(site_url+"index.php?action=activate_ajax&do=nickname",
		{
			method:'post',
			parameters: {ajax: 1, username: nickname},
			onSuccess: function(transport)
			{
				var result=transport.responseText.evalJSON(); 
				if(result.nicknameerror==1){
					$('setup-error-nickname').setStyle({
						display: 'block'
					});
					$(feedbackid).setStyle({
						color: '#FF0000'
					});
				} 
				$(feedbackid).innerHTML=result.statusmsg;
			}
		});
	}
}

function setup_checkname(fieldid,feedbackid,feedbackerrorid)
{
	var field=document.getElementById(fieldid).value;	
	if(!field.blank()){
		new Ajax.Request(site_url+"index.php?action=activate_ajax&do=checkname",
		{
			method:'post',
			parameters: {ajax: 1, inputfield: field},
			onSuccess: function(transport)
			{
				var result=transport.responseText.evalJSON(); 
				$(feedbackid).innerHTML=result.statusmsg; 
				if(result.nameerror==1){
					$(feedbackerrorid).setStyle({
						display: 'block'
					});
					$(feedbackid).setStyle({
						color: '#FF0000'
					});
				} else {
					$(feedbackerrorid).setStyle({
						display: 'none'
					});
					$(feedbackid).setStyle({
						color: ''
					});
				} 
			}
		});
	}
}

var citylist=[
	'Agra',
	'Ahmedabad',
	'Allahabad',
	'Amritsar',
	'Anantapur',
	'Bangalore',
	'Belgaum',
	'Bhopal',
	'Bhubaneswar',
	'Chandigarh',
	'Chennai',
	'Coimbatore',
	'Cuttack',
	'Faridabad',
	'Ghaziabad',
	'Goa',
	'Gurgaon',
	'Guwahati',
	'Gwalior',
	'Hyderabad',
	'Indore',
	'Jaipur',
	'Jalandhar',
	'Kanpur',
	'Kochi',
	'Kozhikode',
	'Kolkata',
	'Lucknow',
	'Ludhiana',
	'Mumbai',
	'Nagpur',
	'New Delhi',
	'Noida',
	'Pune',
	'Surat',
	'Thane',
	'Thiruvananthapuram',
	'Vishakapatnam'
];

function setup_validate()
{
	var firstname=document.getElementById('firstname').value;	
	var lastname=document.getElementById('lastname').value;	
	var city=document.getElementById('city').value;	
	var gender=document.getElementById('gender').value;	
	var country=document.getElementById('country').value;	
	var ustgid=document.getElementById('ustgid').innerHTML;	
	var emailupdate=document.getElementById('emailupdate').checked;
	$('setup-error-nickname').setStyle({
		display: 'none'
	});
	$('nickname-msg').setStyle({
		color: ''
	});
	$('setup-error-firstname').setStyle({
		display: 'none'
	});
	$('firstname-msg').setStyle({
		color: ''
	});
	$('setup-error-lastname').setStyle({
		display: 'none'
	});
	$('lastname-msg').setStyle({
		color: ''
	});
	$('setup-error-city').setStyle({
		display: 'none'
	});
	$('city-msg').setStyle({
		color: ''
	});
	document.getElementById('joinbutton').innerHTML="\<img src=\"/images\/spinner.gif\" height=\"32px\"\>";
	var nickname=document.getElementById('nickname').value;	
	new Ajax.Request(site_url+"index.php?action=activate_ajax&do=validate",
	{
		method:'post',
		parameters: {ajax: 1, nickname: nickname, firstname: firstname, lastname: lastname, city: city, gender: gender, country: country, ustgid: ustgid, emailupdate: emailupdate},
		onSuccess: function(transport)
		{
		var result=transport.responseText.evalJSON(); 
		if(result.allvalid==1)
		{	
			self.location.href=site_url+"step1.html";
		}
		else if(result.emailvalid==0)
		{
			self.location.href=site_url+result.acturl;
		}
		else 
		{
				document.getElementById('nickname-msg').innerHTML=result.nicknamemsg || "&nbsp;";
			if(result.nicknamevalid==0){
				$('setup-error-nickname').setStyle({
					display: 'block'
				});
				$('nickname-msg').setStyle({
					color: '#FF0000'
				});
			} 
				document.getElementById('city-msg').innerHTML=result.citymsg || "&nbsp;";
			if(result.cityvalid==0){
				$('setup-error-city').setStyle({
					display: 'block'
				});
				$('city-msg').setStyle({
					color: '#FF0000'
				});
			} 
				document.getElementById('firstname-msg').innerHTML=result.firstnamemsg || "&nbsp;";
			if(result.firstnamevalid==0){
				$('setup-error-firstname').setStyle({
					display: 'block'
				});
				$('firstname-msg').setStyle({
					color: '#FF0000'
				});
			} 
				document.getElementById('lastname-msg').innerHTML=result.lastnamemsg || "&nbsp;";
			if(result.lastnamevalid==0){
				$('setup-error-lastname').setStyle({
					display: 'block'
				});
				$('lastname-msg').setStyle({
					color: '#FF0000'
				});
			} 
				document.getElementById('joinbutton').innerHTML="\<input\ type\=\"submit\"\ class\=\"join-submit-button\"\ style\=\"width:\ 100px\;\"\ value\=\"Join\"\ onclick\=\"setup_validate\(\)\;\"/\>";
			}
		}
	});
	return false;
}

function load_blogrelatedcontent(jid)
{
	new Ajax.Request(site_url+"index.php?action=myjournal_ajax&do=relatedcontent",
	{
		method:'post',
		parameters: {jid: jid},
		onSuccess: function(transport)
		{
			var response=transport.responseText || "";

		document.getElementById("blogrelatedcontentouter").innerHTML=response;
		}
	});
	return false;
}

function loadtags(item_id,content_type)
{
	new Ajax.Request(site_url+"index.php?action=tags_ajax&do=get_tags",
	{
		method:'post',
		parameters: {item_id: item_id, content_type: content_type},
		onSuccess: function(transport)
		{
			var response=transport.responseText || "";

		document.getElementById("contenttags").innerHTML=response;
		}
	});
	return false;
}

/* Replicated from a_keywords.js with the addition of the call to loadtags. That is the master copy */
function AddTag(new_tag_entry,item_id,content_type)
{
	tag=document.getElementById(new_tag_entry).value;
	url=site_url+"index.php?action=tags_ajax&do=add_tag";
	new Ajax.Request(url,
	{
		method:'post',
		parameters: {ajax:1,item_id: item_id, content_type: content_type, tag: tag},
		onSuccess: function(transport)
		{
		}
	});
	document.getElementById(new_tag_entry).value="done";
	loadtags(item_id,content_type);
	return false;
}


function AddTagsJob(item_id,content_type)
{
	url=site_url+"index.php?action=tags_ajax&do=add_job";
	new Ajax.Request(url,
	{
		method:'post',
		parameters: {ajax:1,item_id: item_id, content_type: content_type},
		onSuccess: function(transport)
		{
			if(transport.responseText)
				document.getElementById("keywordstable").innerHTML=transport.responseText;
		}
	});
	return false;
}

function ShowMoreSearch(tag)
{
	document.getElementById("external2").style.display='';
	document.getElementById("external3").style.display='';
	url=site_url+"index.php?action=tag&do=moreresults";

	jQuery.ajax({
		type: "POST",
		url: url,
		data: {ajax: 1, tag: tag},
		success: function(html)
			{
			if(html)
				document.getElementById("internal1").innerHTML=html;
			}
	});
	document.getElementById("internal1").style.display='';
	document.getElementById("internalresults").style.height='';
	document.getElementById("externalresults").style.height='';
	document.getElementById("showmoreresults").style.display='none';
}
