/**********************************************************************************************/
/*This file contains javascript functions that are being used in various scripts*/
/**********************************************************************************************/

// To remove cookie and login problem
if (window.location.href == "http://sukip.com/")
window.location.href = "http://www.sukip.com"

/* This element will hold the id of the div of an item			*/
var str;

/* This element will hold the node id of the tag corresponding to which add related tag has been pressed   */
var nodeid;

/* store mouse x and y positions	*/
var tempX;
var tempY;

/* Check if the browser is IE or not	*/
var IE = document.all?true:false

// Allow google suggest or not
var SuggestAllow = 0;

// To automatically select the 1st in the list (tag suggest)
var CurrentSuggest = -1;

// Name of the div to show tags in google suggest form
var SuggestDivName = 'suggest-tags';

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

/*This function checks for the validity of emailId*/
function checkemail(emailadd)
{
	var result = false;
	var theStr = new String(emailadd);
	var index = theStr.indexOf("@");
	if (index > 0)
	{
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+2))
		result = true;
	}

	return result;
}

/*Checks for the existence of invalid characters in username*/
function invalid_user(username)
{
	var invalidchar = new Array('#','\'','"','\\','/',' ','!','@','$','%','^','&','*','?');
	var invalid=0;
	for(i=0;i<username.length;i++)
	{
		for(j=0;j<invalidchar.length;j++)
		{
			if (username[i]==invalidchar[j])
			{
				invalid=1;
				break;
			}
		}
	}
	return invalid;
}

/*This function trims input string*/
function trim(inputString) {
	if (typeof inputString != "string") { return inputString; }
	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	while (ch == " ") {
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
	}
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") {
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) {
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
	}
	return retValue;
}

/*This function checks for the validity of floating-point numbers*/
function isint(str)
{
	var flag=0;
	for(var i=0;i < str.length;i++)
	{
		if((str[i]>=0 && str[i]<=9)||str[i]==".")
		flag=1;
		else
		return 0;
	}
	return flag;
}

/*Checks for the validity of integers*/
function isint2 (str)
{
	var i = parseInt (str);

	if (isNaN (i))
	return false;

	i = i . toString ();
	if (i != str)
	return false;

	return true;
}

/*This function is used for checking validity of phone number and pincode in the sense that they should consist digits only*/
function isint1(str)
{
	var flag=1;
	/*if(str.length < 6)
	flag=0;*/
	for(var i=0;i < str.length;i++)
	{
		if(str[i]>=0 && str[i]<=9)
		flag=1;
		else
		return 0;
	}
	return flag;
}

/*
name - name of the cookie
value - value of the cookie
[expires] - expiration date of the cookie
(defaults to end of current session)
[path] - path for which the cookie is valid
(defaults to path of calling document)
[domain] - domain for which the cookie is valid
(defaults to domain of calling document)
[secure] - Boolean value indicating if the cookie transmission requires
a secure transmission
* an argument defaults when it is assigned null as a placeholder
* a null placeholder is not required for trailing omitted arguments
*/

function setCookie_exp(name, value, expires, path, domain, secure) {

	var curCookie = name + "=" + escape(value) +((expires) ? "; expires=" + expires.toGMTString() : "") +((path) ? "; path=" + path : "") +((domain) ? "; domain=" + domain : "") +((secure) ? "; secure" : "");
	document.cookie = curCookie;
	//	alert(document.cookie);
}


/*
name - name of the desired cookie
return string containing value of specified cookie or null
if cookie does not exist
*/

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
	begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
	end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}


/*
name - name of the cookie
[path] - path of the cookie (must be same as path used to create cookie)
[domain] - domain of the cookie (must be same as domain used to
create cookie)
path and domain default if assigned null or omitted if no explicit
argument proceeds
*/

function deleteCookie(name, path, domain) {
	if (getCookie(name)) {
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
	var base = new Date(0);
	var skew = base.getTime();
	if (skew > 0)
	date.setTime(date.getTime() - skew);
}

var ie = (document.all) ? true : false;

function replaceAll( str, from, to ) {
	var idx = str.indexOf( from );


	while ( idx > -1 ) {
		str = str.replace( from, to );
		idx = str.indexOf( from );
	}

	return str;
}

function ValidateEmailItForm()
{
	var docF = document.EmailIt;

	if(trim(docF.email1.value) == "" && trim(docF.email2.value) == "" && trim(docF.email3.value) == "" && trim(docF.email4.value) == "" && trim(docF.email5.value) == "" && trim(docF.email6.value) == "" && trim(docF.email7.value) == "" && trim(docF.email8.value) == "" && trim(docF.email9.value) == "" && trim(docF.email10.value) == "")
	{
		alert("Enter at least one Email");
		docF.email1.focus()
		return false;
	}

	if(trim(docF.email1.value)!="" && !checkemail(docF.email1.value))
	{
		alert('This Email Id is not valid : ' + docF.email1.value)
		docF.email1.focus()
		return false;
	}

	if(trim(docF.email2.value)!="" && !checkemail(docF.email2.value))
	{
		alert('This Email Id is not valid : ' + docF.email2.value)
		docF.email2.focus()
		return false;
	}

	if(trim(docF.email3.value)!="" && !checkemail(docF.email3.value))
	{
		alert('This Email Id is not valid : ' + docF.email3.value)
		docF.email3.focus()
		return false;
	}

	if(trim(docF.email4.value)!="" && !checkemail(docF.email4.value))
	{
		alert('This Email Id is not valid : ' + docF.email4.value)
		docF.email4.focus()
		return false;
	}

	if(trim(docF.email5.value)!="" && !checkemail(docF.email5.value))
	{
		alert('This Email Id is not valid : ' + docF.email5.value)
		docF.email5.focus()
		return false;
	}

	if(trim(docF.email6.value)!="" && !checkemail(docF.email6.value))
	{
		alert('This Email Id is not valid : ' + docF.email6.value)
		docF.email6.focus()
		return false;
	}

	if(trim(docF.email7.value)!="" && !checkemail(docF.email7.value))
	{
		alert('This Email Id is not valid : ' + docF.email7.value)
		docF.email7.focus()
		return false;
	}

	if(trim(docF.email8.value)!="" && !checkemail(docF.email8.value))
	{
		alert('This Email Id is not valid : ' + docF.email8.value)
		docF.email8.focus()
		return false;
	}

	if(trim(docF.email9.value)!="" && !checkemail(docF.email9.value))
	{
		alert('This Email Id is not valid : ' + docF.email9.value)
		docF.email9.focus()
		return false;
	}

	if(trim(docF.email10.value)!="" && !checkemail(docF.email10.value))
	{
		alert('This Email Id is not valid : ' + docF.email10.value)
		docF.email10.focus()
		return false;
	}

	return true;
}

function ValidateNewUser()
{
	var docF = document.NewUser;
	if (trim(docF.Email.value) == "")
	{
		alert("Please enter Email");
		docF.Email.focus();
		return false;
	}
	if(trim(docF.Email.value)!="" && !checkemail(docF.Email.value))
	{
		var email_div=document.getElementById('email_div');
		email_div.innerHTML="Email Id<br>(This Email Id is not valid)";
		email_div.style.color="red";
		return false;
	}
	if(docF.Password1.value!=docF.Password2.value)
	{
		alert("Passwords do  not match\n");
		docF.Password2.focus();
		return false;
	}
	if(docF.Email.value==docF.Password1.value)
	{
		alert("Email and Password cannot be same");
		docF.Password1.focus();
		return false;
	}
	if(trim(docF.Password1.value) == "")
	{
		alert("Please specify Password");
		docF.Password1.focus();
		return false;
	}
	password=docF.Password1.value;
	length=password.length;
	if((length) < 6 || (length) > 40)
	{
		alert("Length of password is not within bounds (6 - 40)");
		docF.Password1.focus();
		return false;
	}
	var username=docF.NickName.value;
	var length= username.length;
	if (trim(docF.NickName.value) == "")
	{
		alert("Please enter NickName");
		docF.NickName.focus();
		return false;
	}
	var invalid=invalid_user(docF.NickName.value);
	if(invalid)
	{
		alert("Invalid NickName");
		docF.NickName.focus();
		return false;
	}
	if (length < 4 || length > 20 )
	{
		alert("Enter NickName of length greater than 3 and less than 20 ");
		docF.NickName.focus();
		return false;
	}
	return true;
}

function LoginFirst(itemid,commentid)
{

	start = 10;
	ie = start*10;
	ff = start/10;
	if(str)
	{
		document.getElementById(str).style.filter = 'alpha(opacity='+ie+')';
		document.getElementById(str).style.opacity = ff;
	}
	if(itemid == 0 && commentid != 0)
	{
		str = 'c'+commentid
		text = 'wanna rate comments on sukip'
	}
	else
	{
		str = 'i'+itemid
		text = 'wanna rate items on sukip'
	}
	start = 3;
	ie = start*10;
	ff = start/10;
	if(document.getElementById(str))
	{
		document.getElementById(str).style.filter = 'alpha(opacity='+ie+')';
		document.getElementById(str).style.opacity = ff;
	}
	//	document.getElementById('alertDiv').style.left=tempX;
	if(document.getElementById('alertDiv'))
	{
		document.getElementById('alertDiv').style.top=tempY;
		document.getElementById('alertDivText').innerHTML = text;
		document.getElementById('alertDiv').style.display='';
	}

}

function resetLoginFirst()
{
	start = 10;
	ie = start*10;
	ff = start/10;
	if(document.getElementById(str))
	document.getElementById(str).style.filter = 'alpha(opacity='+ie+')';
	if(document.getElementById(str))
	document.getElementById(str).style.opacity = ff;
	if(document.getElementById('alertDiv'))
	document.getElementById('alertDiv').style.display='none';
}

function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft
		tempY = event.clientY + document.body.scrollTop
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX
		tempY = e.pageY
	}
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}
}

function AddTag()
{
	if(document.getElementById('tagtextbox'))
	document.getElementById('tagtextbox').style.display = '';
	if(document.getElementById('tagaddbutton'))
	document.getElementById('tagaddbutton').style.display = '';
	if(document.getElementById('tagaddlink'))
	document.getElementById('tagaddlink').style.display = 'none';
	document.getElementById('newtag').focus();

}

/*function AddRelatedTag(tagid)
{
var str1 = 'reltagtextbox' + tagid;
var str2 = 'reltagaddbutton' + tagid;
var str3 = 'reltagaddlink' + tagid;
var str4 = 'reltag' + tagid;

nodeid = tagid;
if(document.getElementById(str1))
document.getElementById(str1).style.display = '';
if(document.getElementById(str2))
document.getElementById(str2).style.display = '';
if(document.getElementById(str3))
document.getElementById(str3).style.display = 'none';
document.getElementById(str4).focus();
}*/

function ResetAddTag()
{
	if(document.getElementById('newtag'))
	document.getElementById('newtag').value = "";
}

function ResetAddRelatedTag()
{
	addAssociatedTagDiv.style.display="none"
	associatedTag.value = ''
	GlobalNodeID = 0;
	GlobalItemID = 0;
	GlobalChecksum = 0;
}

function AddNode(itemid,checksum)
{
	tagname = trim(document.getElementById('newtag').value);
	if(tagname == '')
	return false;
	tagname = tagname.toLowerCase();
	tagnames = tagname.split(' ');
	if(tagnames.length >= 1)
	for(i=0;i<tagnames.length;i++)
	ajax_AddNode(tagnames[i],itemid,checksum);
}

function AddRelatedNode(nodeid,itemid,checksum)
{
	nodeid = GlobalNodeID
	itemid = GlobalItemID
	checksum = GlobalChecksum
	if(GlobalNodeID == 0 || GlobalItemID == 0 || GlobalChecksum == 0)
	return 0;
	str = 'associatedTag'
	tagname = trim(document.getElementById(str).value);
	if(tagname == '')
	return false;
	tagname = tagname.toLowerCase();
	tagnames = tagname.split(' ');
	if(tagnames.length >= 1)
	for(i=0;i<tagnames.length;i++)
	ajax_AddRelatedNode(nodeid,tagnames[i],itemid,checksum);
}

// Validate for subheader search bar
function validatesearch()
{
	docF = document.SearchForm;
	if(trim(docF.keywords.value) == "")
	{
		alert("Please enter a keyword");
		docF.keywords.focus();
		return false;
	}
	var keywords = replaceAll(docF.keywords.value,' ','_');
	docF.action = path + 'search/'+keywords;
	return true;
}

// Call function to execute str on enter press
function handleKeyPress(e,str)
{
	var key=e.keyCode || e.which;
	if (key==13)
	{
		eval(str);
	}
}

function suggestOver(el,tag)
{
	CurrentSuggest = el
	divid = 'suggestedtag'+el

	if(SuggestDivName == 'suggest-rel-tags')
	textboxid = 'associatedTag'
	else
	textboxid = 'newtag'

	if(document.getElementById(textboxid) && tag != '')
	document.getElementById(textboxid).value = tag
	if(document.getElementById(divid))
	document.getElementById(divid).className = 'srs'
	else
	CurrentSuggest = parseInt(el-1)
}

function suggestOut(el)
{
	divid = 'suggestedtag'+el
	if(document.getElementById(divid))
	document.getElementById(divid).className = 'sr'
}

function suggestClick(tag)
{
	if(SuggestDivName == 'suggest-rel-tags')
	textboxid = 'associatedTag'
	else
	textboxid = 'newtag'

	document.getElementById(textboxid).value = tag
	document.getElementById(SuggestDivName).style.display = 'none'
}

function suggestKeyDown(e,tag)
{
	var key = e.keyCode || e.which;
	switch (key)
	{
		case 27: // escape
		SuggestAllow = 0;
		if(document.getElementById(SuggestDivName))
		document.getElementById(SuggestDivName).style.display = 'none'
		return false;
		break;
		case 38: // up arrow
		if(CurrentSuggest != 0)
		{
			var tagname = 'suggestedtagtext' + parseInt(CurrentSuggest-1)
			if(document.getElementById(tagname))
			{
				tagname = document.getElementById(tagname).innerHTML;
				suggestOut(CurrentSuggest)
				suggestOver(CurrentSuggest-1,tagname)
			}
		}
		SuggestAllow = 0;
		break;
		case 40: // down arrow
		var tagname = 'suggestedtagtext' + parseInt(CurrentSuggest+1)
		if(document.getElementById(tagname))
		{
			suggestOut(CurrentSuggest)
			tagname = document.getElementById(tagname).innerHTML;
			suggestOver(CurrentSuggest+1,tagname)
		}
		SuggestAllow = 0;
		break;
		case 13: // enter key
		SuggestAllow = 0;
		case 9: // tab key
		if(document.getElementById(SuggestDivName))
		document.getElementById(SuggestDivName).style.display = 'none'
		break;
		default:
		SuggestAllow = 1;
		str = "document.getElementById(SuggestDivName).style.display = 'none'"
		//		setTimeout(str,5000);
	}
}

// Function to toggle default homepage type cookie

function SetHomePageTypeCookie(val)
{
	// Set the expiry date to 30 days
	var now = new Date();
	fixDate(now);
	now.setTime(now.getTime() + 30 * 24 * 60 * 60 * 1000);

	// Set the cookie finally
	setCookie_exp('SUKIP_HP_TYPE',val,now,'/')

	switch(val)
	{
		case 'A':
		//var code="Default Home Page: <a href=\"javascript: SetHomePageTypeCookie('S');\">Simple</a> | <b>Advanced</b>";
		var code="Default Home Page: <a onclick=\"domTT_deactivate('tt_dhp_s')\" onmouseover=\"domTT_activate(this, event, 'id', 'tt_dhp_s', 'content', 'Click to <b>change</b> the Default Home Page to <b><font color=#006600>Simple</font></b>', 'width', '220', 'delay', 500, 'styleClass', 'tt-custom-1', 'trail', 'x');\" href=\"javascript: SetHomePageTypeCookie('S');\">Simple</a> | <b onmouseover=\"domTT_activate(this, event, 'content', 'Current Default Home Page: <b><font color=#006600>Advanced</font></b>', 'width', '210', 'delay', 500, 'styleClass', 'tt-custom-1', 'trail', 'x');\">Advanced</b>"
		break;
		case 'S':
//		var code="Default Home Page: <b>Simple</b> | <a href=\"javascript: SetHomePageTypeCookie('A');\">Advanced</a>";
		var code="Default Home Page: <b onmouseover=\"domTT_activate(this, event, 'content', 'Current Default Home Page: <b><font color=#006600>Simple</font></b>', 'width', '190', 'delay', 500, 'styleClass', 'tt-custom-1', 'trail', 'x');\">Simple</b> | <a onclick=\"domTT_deactivate('tt_dhp_a')\" onmouseover=\"domTT_activate(this, event, 'id', 'tt_dhp_a', 'content', 'Click to <b>change</b> the Default Home Page to <b><font color=#006600>Advanced</font></b>', 'width', '220', 'delay', 500, 'styleClass', 'tt-custom-1', 'trail', 'x');\" href=\"javascript: SetHomePageTypeCookie('A');\">Advanced</a>"
		break;
	}

	if(document.getElementById('hptype'))
	{
		document.getElementById('hptype').innerHTML = code;
	}
}

// Function to toggle tooltip cookie

function ToggleToolTips(val)
{
	// Set the expiry date to 30 days
	var now = new Date();
	fixDate(now);
	now.setTime(now.getTime() + 30 * 24 * 60 * 60 * 1000);

	if(!val)
	{
		if(getCookie('SUKIP_TOOLTIPS') == 'ON')
			val = 'OFF'
		else
			val = 'ON'
	}

	// Set the cookie finally
	setCookie_exp('SUKIP_TOOLTIPS',val,now,'/')

	switch(val)
	{
		case 'OFF':
		var code="Tooltips: <a href=\"javascript: ToggleToolTips('ON');\">On</a> | <b>Off</b>";
		break;
		case 'ON':
		var code="Tooltips: <b>On</b> | <a href=\"javascript: ToggleToolTips('OFF');\">Off</a>";
		break;
	}

	if(document.getElementById('tt'))
	{
		document.getElementById('tt').innerHTML = code;
	}
	
	document.location.reload();
}

function toggleDescription()
{
	document.getElementById('descfull').style.display='';
	document.getElementById('desctrim').style.display='none';
}

