function commentsave(QuestionId,pagetab) {
   
        if($('CommentBody')) {

			if(FCKeditorAPI.__Instances['CommentBody']) 
				var comment = FCKeditorAPI.__Instances['CommentBody'].GetHTML();
			else
				var comment = '';
			
			if(pagetab != 'commentsave') {
				return false;
			}
			
			if(pagetab == 'commentsave' && comment.length < 1) {
				alert("Please enter some text and try again!");
				return false;
			}
			
		}else {
			var comment = '';
		}
		
		
		new Ajax.Updater('optionContent5','/study-online/addComment/'+QuestionId, {asynchronous:true, evalScripts:true, method: 'post', parameters: 'comment=' +encodeURIComponent(comment)});
		
		if($('DiscussionComment')) {
			$('DiscussionComment').value = 'please wait...';
			$('DiscussionComment').disabled = true;
		}
	}

	function showPuzzle(title,url,textbookid,chapterid,puzzleid,mintime,totaltime,totalsolved,pageIndex) {
   		// track it
		var date = new Date();
		if(url != '/study-online/puzzleContent/') {
			var track = $('puzzleTrack');
			track.innerHTML = '<img src="/study-online/trackUserPuzzle/'+textbookid+'/'+chapterid+'/'+puzzleid+'/'+date.getTime()+'" height="1px" width="1px">';
		}

		// hide video content
		if(pageIndex=='1') {
			try {
				for(i=1; i<=5; i++) {
					if($('option'+i)) {
						$('option'+i).className = '';
						$('optionContent'+i).style.display = 'none';
					}
				}
				$('optionContent2').innerHTML = '';
				$('option1').className = 'selected';
				$('optionContent1').style.display = 'block';
			} catch (err) {}
		}
		// recalc layout height
        try{
			myLightWindow._getPageDimensions();
        	$('lightwindow_overlay').style.height = myLightWindow.pageDimensions.height + "px";
        }
		catch(err) { }

		// show lightwindow
		try {
			if(mintime == 999999) {
				mintime = '00:00';
				avgtime = '00:00';
			} else {
				minminute = (Math.floor(mintime/60));
				minseconds = (mintime%60);
				if(minseconds < 10) {
					minseconds = '0'+minseconds;
				}
				mintime = minminute+':'+minseconds;

				average = Math.abs(totaltime/totalsolved);
				average = Math.abs(average/60);
				averagetime = average.toFixed(2);
				decimalindex = averagetime.indexOf('.');
				avgminutes = averagetime.substring(0,(parseInt(decimalindex)));
				avgseconds = averagetime.substring((parseInt(decimalindex)));
				avgseconds = Math.ceil(parseInt(avgseconds*60));
				if(avgseconds < 10) {
					avgseconds = '0'+avgseconds;
				}
				avgtime = avgminutes+':'+avgseconds;
			}
			url = url+'?puzzleId='+puzzleid+'&minTime='+mintime+'&avgTime='+avgtime;
			myLightWindow = new lightwindow({hideFlash:true});
			myLightWindow.activateWindow({
	            href: url,
	            title: title,
	            height: 600,
	            width: 800
	        });
		}
		catch(err) {
			window.open('..'+url,'puzzlewindow');
		}
    }

	function myfunction(timeTaken,puzzleid) {
		colonindex = timeTaken.indexOf(':');
		minutes = timeTaken.substring(0,(parseInt(colonindex)));
		seconds = timeTaken.substring((parseInt(colonindex)+1));
		timeinseconds = (parseInt(minutes*60)+parseInt(seconds));
		$('puzzleTrack').innerHTML = '<img src="/study-online/updateJigsawPuzzle/'+puzzleid+'/'+timeinseconds+'" height="1px" width="1px">';
	}

	function updatePuzzleTime(timeTaken,puzzleid) {
		colonindex = timeTaken.indexOf(':');
		minutes = timeTaken.substring(0,(parseInt(colonindex)));
		seconds = timeTaken.substring((parseInt(colonindex)+1));
		timeinseconds = (parseInt(minutes*60)+parseInt(seconds));
		$('puzzleTrack').innerHTML = '<img src="/study-online/updateJigsawPuzzle/'+puzzleid+'/'+timeinseconds+'" height="1px" width="1px">';
	}

	
	function lwQuestion(title,url) { // questoin light window
			myLightWindow._getPageDimensions();
			$('lightwindow_overlay').style.height = myLightWindow.pageDimensions.height + "px";
			// show lightwindow
			myLightWindow.activateWindow({
				href: url,
				title: title,
				height: 600,
				width: 800
				});
	}

/*
 #######################################################################################
            ######## change is done by arun dwivedi, on dated : 16 oct 09
 #######################################################################################
*/

function removeAllOptions(depth,selectBoxIds){
    for(var i=depth; i<selectBoxIds.length;i++){
    for (var j=$(selectBoxIds[i]).options.length;j>=0;j--) 
        $(selectBoxIds[i]).options[j] = null;
    }
}

function setOptionVal(depth,gradeid,currid,_MN_json){

	var selectBoxIds=[currid,gradeid];
	removeAllOptions(depth,selectBoxIds);
	var addSelect = false;
    if(depth==0){
		addOption(selectBoxIds[depth],'Select','');
        _MN_json.each(function(obj){
			addOption(selectBoxIds[depth],obj.label,obj.val);
			if(obj.val == selectCurrId) {
				addSelect = true;
				ele.setAttribute("selected",'selected');
					if(obj.val==$(selectBoxIds[depth]).value){
						addOption(selectBoxIds[depth+1],'Select','');
						obj.groups.each(function(obj1){
						addOption(selectBoxIds[depth+1],'Class '+obj1.label,obj1.val);
						if(obj1.val == selectGradeId) {
							ele.setAttribute("selected",'selected');
						}
					});
				}
			}
        });
     
	 if(!addSelect)
		addOption(selectBoxIds[1],'Select','');
		 
    }else if(depth==1){
		addOption(selectBoxIds[depth],'Select','');
        _MN_json.each(function(obj){
            if(obj.val==$(selectBoxIds[depth-1]).value){
                obj.groups.each(function(obj1){
                addOption(selectBoxIds[depth],'Class '+obj1.label,obj1.val);
            });
            return;
            }
        });
    }
}
function addOption(selectbox,label,value )
{   
	ele=document.createElement("OPTION");
    label=document.createTextNode(label);
    ele.appendChild(label);
    ele.setAttribute("value",value);
    $(selectbox).appendChild(ele);
}

/* ############    Start code for  Error handling in user registration  ####################### */
var correctIcon = '<img border="0" align="absmiddle" src="/img/correct-icon.gif">';
var MSGTIMER = 20;
var errPointer = 'Right';
var MNMessageCss = 'MNMessageRight';
var MNMessageContentCss = 'MNMessageContentRight';
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;
var TIMERVALUE=null;
var emailRegex = /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i;
var mobileRegex =/^[0-9-()+ ]{10,15}$/;
var repeatedRegex =  /(.)\1{7}/;
var incrementRegex = /^((12345678)||(01234567)||(98765432))([0-9]{2,7})$/;
function validateRegForm(obj,errType){
  var MNMessage;
  var MNMessageContent;
  var errMsg='';
    if(arguments.length==3){
		errPointer = obj.id;
		MNMessageCss = 'MNMessageLeft';
		MNMessageContentCss = 'MNMessageContentLeft';
	}
	  if($('emailLoader')) {
		  var src_name = ($('emailLoader').src).search('loader1.gif');
		  if($('emailLoader') && src_name!='-1')
			$('emailLoader').hide();
	  }
  if(!document.getElementById('MNMessage'+errPointer)) {
    MNMessage = document.createElement('div');
    MNMessage.id = 'MNMessage'+errPointer;
    MNMessageContent = document.createElement('div');
    MNMessageContent.id = 'MNMessageContent'+errPointer;
	$(MNMessage).addClassName(MNMessageCss);
	$(MNMessageContent).addClassName(MNMessageContentCss);
    document.body.appendChild(MNMessage);
    MNMessage.appendChild(MNMessageContent);
  } else {
    MNMessage = document.getElementById('MNMessage'+errPointer);
    MNMessageContent = document.getElementById('MNMessageContent'+errPointer);
  }
	if($('errId'+errType))
    $('errId'+errType).hide();     
    

	
	if(errType=='Email'){
		var sobjValue=obj.value;
		iobjLength=sobjValue.length;
		iFposition=sobjValue.indexOf("@");
		iSposition=sobjValue.indexOf(".");
		iTmp=sobjValue.lastIndexOf(".");	
		iPosition=sobjValue.indexOf(",");
		iPos=sobjValue.indexOf(";");
		
		if(sobjValue==''){
			errMsg = 'E-mail id field is empty';
		}else if(sobjValue.indexOf(" ")!= -1){
			errMsg = 'Email should not contain any spaces.';
		}else if(sobjValue.charAt(0) == "@" || sobjValue.charAt(0)=="."){
			errMsg = 'Email cannot start with "@" or "."';				
		}else if ((iobjLength-(iTmp+1)<2)||(iobjLength-(iTmp+1)>3)){
			errMsg = 'Your E-mail id is not complete. It should be like abc@example<span class="textRed bold">.com</span>';
		}else if(iSposition == -1){
			errMsg = 'You forgot to include .(dot) in your E-mail id. For eg. abc@example<span class="textRed bold">.</span>com';
		}else if(iFposition == -1){
			errMsg = 'You forgot to include @ in your E-mail id. For eg. abc<span class="textRed bold">@</span>example.com';
		}else if ((iPosition!=-1) || (iPos!=-1)){
			errMsg = 'Email should not contain special characters like "," or ";"';
		}else if((sobjValue.indexOf("@",(iFposition+1)))!=-1){	
			errMsg = 'Your E-mail id cannot contain more than one <span class="textRed bold">@</span> character. For eg. abc@example.com';
		}else if(sobjValue=='abc@example.com') {
			errMsg = 'Please enter your own email id';
		}else if(!sobjValue.match(emailRegex)) {
			errMsg = 'Invalid E-mail id. E-mail should be like abc@example.com';
		}
	}else if(errType=='Password'){
		errMsg = passwordValidate(obj.value);
		if(errMsg=='') {
           showImage(errType);
        }
		if($('UserConfirmpassword') && $('UserConfirmpassword').value!='' && obj.value==$('UserConfirmpassword').value){
			$('MNMessageUserConfirmpassword').hide(); 
			if($('UserConfirmpassword').hasClassName('errClass')) {
				$('UserConfirmpassword').removeClassName('errClass');
				showImage('Confirm password');
			}
		}

	}else if(errType=='Confirm password'){
		if(obj.value==''){
			errMsg = 'Confirm password field is empty';
		}else if(obj.value!=$('UserPassword').value){
			errMsg = 'Passwords do not match';
		}else if(obj.value==$('UserPassword').value){
			if(passwordValidate($('UserPassword').value)==''){
				$('MNMessageUserPassword').hide();
				if($('UserPassword').hasClassName('errClass')) {
					$('UserPassword').removeClassName('errClass');
					showImage('Password');
				}
			}
			showImage(errType);
		}
	}else if(errType=='Board'){
		if(obj.value==''){
            errMsg = 'Select your Board from the list';
        }else if(errMsg=='') {
            showImage(errType);
        }
	}else if(errType=='Class'){
		if(obj.value==''){	
         errMsg = 'Select your class from the list';
        }else if(errMsg=='') {
            showImage(errType);
        }
	}else if(errType=='userType'){
		if(obj.value==''){    
			errMsg = 'Describe yourself using any one of the options';
		}else if(errMsg=='') {
			showImage(errType);
		}
	}else if(errType=='Mobile'){
		if(obj.value=='')
			errMsg = 'Type your mobile number';
		else if(!obj.value.match(mobileRegex) || obj.value.match(repeatedRegex) || obj.value.match(incrementRegex))
			errMsg = 'Invalid mobile number';
        else if(errMsg=='') {
            showImage(errType);
        }
	}else if(errType=='OldPassword') {
		errMsg = passwordValidate(obj.value);
		if(errMsg=='')
		showImage(errType);
	}
	if($('chkAvail') && errType=='Email')
		$('chkAvail').hide();
	if(obj.value=='' || errMsg!=''){
    
        if($(obj).up('span'))
            $(obj).up('span').addClassName('errClass');
        else    
		    $(obj).addClassName('errClass');

		MNMessageContent.innerHTML=(errMsg!='' ? errMsg : errType+' is empty.');
		MNMessage.style.display='block';
		var msgheight = MNMessage.offsetHeight;
		var msgwidth = MNMessage.offsetWidth;

		var targetheight = obj.offsetHeight;
		var targetwidth = obj.offsetWidth;
		var topposition = topPosition(obj) - ((msgheight - targetheight) / 2);
		var leftposition = leftPosition(obj);
		
		if(errType=='userType'){
			if(errPointer != 'Right')
				leftposition =leftposition+30;
		}
		if(errPointer == 'Right')
			leftposition = leftposition-msgwidth-10;
		else
			leftposition = leftposition + targetwidth + MSGOFFSET;

		MNMessage.style.top = topposition + 'px';
		MNMessage.style.left = leftposition + 'px';
		return false;
	}else{
        if($(obj).up('span') && $(obj).up('span').hasClassName('errClass'))
            $(obj).up('span').removeClassName('errClass');
		else if($(obj).hasClassName('errClass'))
			$(obj).removeClassName('errClass');

		MNMessage.style.display='none';
		MNMessageContent.innerHTML='';
	}
	return true;
}
function passwordValidate(val){
	var err='';
	if(val==''){
		err = 'Password field is empty';
	}else if(val.length < 4) {
		err = 'Password should have minimum 4 characters';
	}else if(val.indexOf(" ")!= -1) {
		err = 'Spaces not allowed in password';
	}else if(val.length > 20) {
		err = 'Password should not exceed more than 20 characters';
	}
	return err;
}

function showImage(errType) {
	if($('errId'+errType)){
		$('errId'+errType).style.display = '';
		$('errId'+errType).innerHTML = correctIcon;
		$('errId'+errType).className = '';
	}
}
// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  return top;
}

// preload the arrow //
if(document.images) {
  arrow = new Image(7,80); 
  arrow.src = "/img/msg_arrow_right.gif"; 
  arrow1 = new Image(7,80); 
  arrow1.src = "/img/msg_arrow_left.gif"; 
}



function checkAvalability(obj){
    String.prototype.trim = function () {
		return this.replace(/^\s*/, "").replace(/\s*$/, "");
	}
	var email = new String(obj.value);
	email = email.trim();
	var length = email.length;
	if(length>0){
		var url='/users/checkAvalibility/'+email;
		new Ajax.Request(url, {
		asynchronous:true, 
		evalScripts:true,
		onCreate:function(){
			$('emailLoader').src='/img/loader1.gif';
			$('emailLoader').show();
		},
		onSuccess: function(response){
			var output=response.responseText;
			if(output.include('success')){
				$('emailLoader').src='/img/correct-icon.gif';
			}else{
				$('emailLoader').hide();
				if($('chkAvail')){
					$('chkAvail').show();
					$('availability').innerHTML=output;
				}
			}
		 }
	 });
	}
}

/* ############    End code for  Error handling in user registration  ####################### */

/*
Date: 26 August 2010
toggleText function use for toggle text in onfocus and onblur of form's textbox, textarea.

*/
function toggleText(cond,obj, defaultText) {
	if(cond==0 && obj.value == defaultText) {
		obj.value = '';
		obj.style.color = '#000000';
	}else if(cond==1 && obj.value == '') {
		obj.value = defaultText;
		obj.style.color = '#999999';
	}else {
		obj.style.color = '#000000';
	}
}
