// JavaScript Document



var perline = 8;
var allowHide = true;
var allowShortcutsHide = true;
var statusDivSet = false;
var shortcutsDivSet = false;

var curStatusElem;
var curShortcutsElem;
var curStatus = '';

var nocolour = '';

var customMode = false;

var pickerElementId = 'dynamicStatusChanger';
var shortcutpickerElementId = 'selMyProfileQuickLinks';
var iframePickerId = 'dynamicStatusChangerIFrame';
var iframePickerId2 = 'dynamicStatusChangerIFrame2';
var iframeDivWidth = '220px';
//if (document.all) { nocolour = ''; }


var detect = navigator.userAgent.toLowerCase();// alert(detect);
var OS,browser,version,total,thestring;
if (_checkIt('konqueror')) {
	browser = "Konqueror"; OS = "Linux";
} else if (_checkIt('safari'))
	browser = "Safari"
		else if (_checkIt('opera'))
		browser = "Opera"
			else if (_checkIt('msie'))
			browser = "IE"
				else if (!_checkIt('compatible')) {
					browser = "Netscape Navigator"
					version = detect.charAt(8);
				} else browser = "Unknown";

if (!version) version = detect.charAt(place + thestring.length);
if (!OS) {
	if (_checkIt('linux')) OS = "Linux";
	else if (_checkIt('x11')) OS = "Unix";
		else if (_checkIt('mac')) OS = "Mac"
			else if (_checkIt('win')) OS = "Windows"
				else OS = "Unknown";
}
var doiframe = (browser == "IE");
function _checkIt(string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}// EOF _checkIt()

//------------------------



function getObject(id) {
	return $(id);
}// EOF getObject()


function pickStatus(elem) {
if(status_all)
status_array=status_all.split(',');
else
status_array='';
    if (!statusDivSet) { setStatusDiv(); }
	allowHide = false;
	listen('mousemove', pageId, hideTarget);
	var picker = getObject(pickerElementId);
    if (elem == curStatusElem && picker.style.display == 'block') {
		if(picker!=null)
        picker.style.display = 'none';
        return;

    }//EOF if-elem

    curStatusElem = elem;

    picker.style.top = getAbsoluteOffsetTop(elem) + 14 + "px";
    picker.style.left = getAbsoluteOffsetLeft(elem) + 2 + "px";
    customMode = false;
    picker.style.display = 'block';
}
function setStatusDiv() {
    if (!document.createElement) { return; }
    var elemDiv = document.createElement('div');
    if (typeof(elemDiv.innerHTML) != 'string') { return; }
    elemDiv.id = pickerElementId;
    elemDiv.style.position = 'absolute';
    elemDiv.style.display = 'none';
    elemDiv.style.border = '1px solid #D6CFB1';
	elemDiv.style.width = '220px';
    elemDiv.style.zIndex = 99;
str = '<ul id="userStatusPicker">';
for(k=0;k<status_array.length;k++)
{
    status_new=status_array[k];
    status_split=status_new.split('#~#');
    status_id=status_split[0];
    status_value=status_split[1];
	str += '<li><a href="#" onMouseOver="allowHide=false" onMouseOut="allowHide=true" onclick="return assign(\''+ status_id +'\', \''+ status_value +'\')">' + unescape(status_value) + '</a></li>';
}
str += '<li class="clsStatusSeprator"><p onMouseOver="allowHide=false" onMouseOut="allowHide=true"/><!-- --></p></li>';
str += '<li><a href="'+ statusSettingUrl +'" onMouseOver="allowHide=false" onMouseOut="allowHide=true">'+LANG_SETTINGS+'</a></li>';
str += '<li id="statusPickerLogout"><a href="'+ logoutUrl +'" onMouseOver="allowHide=false" onMouseOut="allowHide=true">'+LANG_LOGOUT+'</a></li>';
str += '</ul>';
elemDiv.innerHTML='';
elemDiv.innerHTML = str;
if($('dynamicStatusChanger'))
{
	$('dynamicStatusChanger').innerHTML = str;
}
else
{
document.body.appendChild(elemDiv);
}
   	if(getObject('userStatusPicker').offsetWidth!=null){
		//elemDiv.style.width = getObject('userStatusPicker').offsetWidth + "px";
	}
   statusDivSet = true;
}// EOF setStatusDiv()


function getAbsoluteOffsetTop(obj) {
    var top = obj.offsetTop;
    var parent = obj.offsetParent;
    while (parent != document.body) {
        top += parent.offsetTop;
        parent = parent.offsetParent;
    }//EOF while-parent
    return top;
}// EOF getAbsoluteOffsetTop()

function askNewStatus(){
		var sample = 'New Status';
		var newStatus = prompt('Enter Your New Status', sample );
		if (newStatus!=null && (!stricmp(newStatus, sample)) && newStatus.length>0){
			newStatus = newStatus.substring(0, 20);
		}else{
		}
}
function stricmp(str1, str2){
	return (str1.toLowerCase() === str2.toLowerCase());
}
function addNewStatus(){

}
function assign(v, txt){
	obj = getObject('onlineStatusSpan');
	if(obj!=null){
		//obj.innerHTML = txt;
		if(status_string_total_length<txt.length)
	 	   var wraped_st=txt.substring(0,status_string_total_length)+' ...';
		else
	  	  var wraped_st=txt.substring(0,status_string_total_length);
		obj.innerHTML = wraped_st;
		$('onlineStatusFull').innerHTML=txt;
		obj.setAttribute('title', txt);
		curStatus = txt;
		updateUserStatus(v);

	}
	hideStatusPicker();
	return false;
}

function getAbsoluteOffsetLeft(obj) {
    var left = obj.offsetLeft;
    var parent = obj.offsetParent;
    while (parent != document.body) {
        left += parent.offsetLeft;
        parent = parent.offsetParent;
    }//EOF while-parent
    return left;
}// EOF getAbsoluteOffsetLeft()


function hideTarget(e){
	if(statusDivSet && allowHide)
		hideStatusPicker();
}
function hideStatusPicker(){
   var picker = getObject(pickerElementId);
    if (statusDivSet) {
	if(picker!=null)
        picker.style.display = 'none';
        if (doiframe) {
            var iframe = getObject(iframePickerId);
			if(iframe!=null)
            iframe.style.display = 'none';
        }//EOF if-doiframe
    }//EOF if-noClose
	statusDivSet = false
}

function hideAsEsc(){

}

function objListen(event, obj, func) {
	if(obj!=null){
    if (obj.addEventListener)  // W3C DOM
        obj.addEventListener(event,func,false);
    else if (elem.attachEvent)  // IE DOM
        obj.attachEvent('on'+event, function(){ func(new W3CDOM_Event(obj)) } );
	}
        // for IE we use a wrapper function that passes in a simplified faux Event object.
}

function updateUserStatus(st){
	st=st.stripTags();
	st=st.stripScripts();
	var pars = 'u='+siteUserId+'&status=' + st;
	var url = siteUrl + 'members/online.php';
	new Ajax.Request(url, {method:'post',parameters:pars,onComplete:newStatusUpdated});
}
function newStatusUpdated(resp){
	txt = resp.responseText;
	if(txt.indexOf('rror') > 0){
		clearInterval(onlineTimer);
	}
}

var _curStatus = '';
function saveStatus(st){
st = st.substring(0,20);
st=st.stripTags();
st=st.stripScripts();
_curStatus = st;
pars = 'u='+siteUserId+'&astatus=' + st;
url = siteUrl + 'members/online.php';
new Ajax.Request(url, {method:'post',parameters:pars,onComplete:newStatusAdded});
}
function newStatusAdded(rep){
	xmlDoc = html2xml(rep.responseText);
	r = xmlDoc.documentElement.getElementsByTagName("id");
	s = r[0].childNodes[0].nodeValue
	st = _curStatus;
	//status[s] = st;
	if(status_all)
	status_all=status_all+','+s+'#~#'+st;
	else
	status_all=s+'#~#'+st;
	rep = rep.responseText;
	if(rep.indexOf('rror')>0){
		clearInterval(onlineTimer);
	}
	sp = $('onlineStatusSpan');
	sp_full=$('onlineStatusFull');
	if(status_string_total_length<st.length)
	var wraped_st=st.substring(0,status_string_total_length)+' ...';
	else
	var wraped_st=st.substring(0,status_string_total_length);

	//sp.update(st)
	sp.update(wraped_st)
	sp_full.update(st)
	sp.setAttribute('title', st);
	curStatus = st;
	hideStatusPicker();
}
			function vj(){
			sp = getElem('onlineStatusSpan');
			var stval = getElem('onlineStatusFull').innerHTML;
			if(sp!=null){
			s = sp.innerHTML;
			v = getObject('s');

			if(v==null){
				 s = '<input class="clsInputMemberStatus" type="text" name="s" onkeyUp="store(this.value, event)" maxlength="20" size="' + s.length + '" id="s" value="'+ stval +'">';
				 sp.innerHTML = s

				 getObject('s').select();
				getObject('s').focus();
				}
			}
			}
			function store(v, evt){
				sp = getElem('onlineStatusSpan');
				sp_full = getElem('onlineStatusFull');
				evt = (evt) ? evt : window.event
				curEvent = evt;
				var charCode = (evt.which) ? evt.which : evt.keyCode;
				if(charCode==27){
					//sp.innerHTML = curStatus.replace(/<\/?[^>]+>/gi, '');

					var wraped_st=curStatus.replace(/<\/?[^>]+>/gi, '');
				   	if(status_string_total_length<wraped_st.length)
					  wraped_st=wraped_st.substring(0,status_string_total_length)+' ...';
					else
					  wraped_st=wraped_st.substring(0,status_string_total_length);
					sp.innerHTML = wraped_st;
					sp.setAttribute('title', curStatus);
					sp_full.innerHTML = curStatus.replace(/<\/?[^>]+>/gi, '');
				}
				if(charCode==13){
				existing = 0
				if(status_all)
				status_array=status_all.split(',');
				else
				status_array='';
				for(k=0;k<status_array.length;k++)
				{
			    status_new=status_array[k];
			    status_split=status_new.split('#~#');
			    status_id=status_split[0];
			    status_value=status_split[1];
			    	if(stricmp(status_value, v)){
					existing ++;
					}
			    }
				if(existing==0){
				    var RegExp=/^[A-Za-z0-9\s]+$/;
				    if(v.search(RegExp)==-1) {
			        alert(LANG_STATUS_ERROR_MSG);
			        return false;
			             }
					saveStatus(v);
				}else{
					//sp.innerHTML = v.replace(/<\/?[^>]+>/gi, '');
					var wraped_st=v.replace(/<\/?[^>]+>/gi, '');
				   	 if(status_string_total_length<wraped_st.length)
					  wraped_st=wraped_st.substring(0,status_string_total_length)+' ...';
					else
					  wraped_st=wraped_st.substring(0,status_string_total_length);
					sp.innerHTML =wraped_st;
					sp.setAttribute('title', v);
					sp_full.innerHTML =v.replace(/<\/?[^>]+>/gi, '');
				}
				};

			}
function print_r(ob){
cont = '';
for(var i in ob){
	cont += i + '=' + ob[i];
	cont += "\n";
}
alert(cont);
}

html2xml = function(xmlText){
	var doc = null;
		//code for IE
		if (window.ActiveXObject)  {
			  doc=new ActiveXObject("Microsoft.XMLDOM");
			  doc.async="false";
			  doc.loadXML(xmlText);
		  }
		// code for Mozilla, Firefox, Opera, etc.
		else{
				var parser=new DOMParser();
				doc=parser.parseFromString(xmlText,"text/xml");
		  }
	return doc;
}

//-------------------------------------

function myProfileQuickLinks(elem) {
   	if (!shortcutsDivSet) { setShortcutsDiv(); }
	allowShortcutsHide = false;
	listen('mousemove', pageId, hideShortcutTarget);
	var shortcutsPicker = getObject(shortcutpickerElementId);

    if (elem == curShortcutsElem && shortcutsPicker.style.display == 'block') {
		if(shortcutsPicker!=null)
        shortcutsPicker.style.display = 'none';
        return;

    }//EOF if-elem
    curShortcutsElem = elem;
    shortcutsPicker.style.top = getAbsoluteOffsetTop(elem) + 15 + "px";
    shortcutsPicker.style.left = getAbsoluteOffsetLeft(elem) + 35 + "px";
    customMode = false;
    shortcutsPicker.style.display = 'block';
}

function setShortcutsDiv() {
    if (!document.createElement) { return; }
    var elemDiv = document.createElement('div');
    if (typeof(elemDiv.innerHTML) != 'string') { return; }
    elemDiv.id = shortcutpickerElementId;
    elemDiv.style.position = 'absolute';
    elemDiv.style.display = 'none';
    elemDiv.style.border = '1px solid #D6CFB1';
	elemDiv.style.width = '220px';
    elemDiv.style.zIndex = 99;
show_shortcuts_array=show_shortcuts.split('#*~*#');
str = '<ul id="selMyProfileLinks" onMouseOver="allowShortcutsHide=false" onMouseOut="allowShortcutsHide=true">';
for(j=0;j<show_shortcuts_array.length;j++)
{
    shortcuts=show_shortcuts_array[j];
    shortcuts_split=shortcuts.split('***!!!***');
    shortcuts_link=shortcuts_split[0];
    shortcuts_name=shortcuts_split[1];
	str += '<li><a href="'+shortcuts_link+'" onMouseOver="allowShortcutsHide=false" onMouseOut="allowShortcutsHide=true">' + shortcuts_name+ '</a></li>';
}
str += '</ul>';
elemDiv.innerHTML = str;

    document.body.appendChild(elemDiv);
    if (doiframe) {
        var iframeDiv = document.createElement('iframe');
        iframeDiv.id = iframePickerId2;
		iframeDiv.style.position = 'absolute';
        iframeDiv.style.display = 'none';
        iframeDiv.style.border = '0';
        iframeDiv.style.zIndex = 4;
		iframeDiv.style.width = iframeDivWidth;
		iframeDiv.style.height = 'auto';
        document.body.appendChild(iframeDiv);

    }// EOF if-doiframe
	if(getObject('selMyProfileLinks').offsetWidth!=null){
		//elemDiv.style.width = getObject('userStatusPicker').offsetWidth + "px";
	}
   shortcutsDivSet = true;
}// EOF setShortcutsDiv()

function hideShortcutTarget(e){
	if(shortcutsDivSet && allowShortcutsHide)
		{
			hideShortcutPicker();
		}
}
function hideShortcutPicker(){
   var shortcutsPicker = getObject(shortcutpickerElementId);
    if (shortcutsDivSet) {
	if(shortcutsPicker!=null)
        shortcutsPicker.style.display = 'none';
        if (doiframe) {
            var iframe = getObject(iframePickerId2);
			if(iframe!=null)
            iframe.style.display = 'none';
        }//EOF if-doiframe
    }//EOF if-noClose
	shortcutsDivSet = false;
}

