var XH_ieProgId_;
var XML_READY_STATE_UNINITIALIZED = 0;
var XML_READY_STATE_LOADING = 1;
var XML_READY_STATE_LOADED = 2;
var XML_READY_STATE_INTERACTIVE = 3;
var XML_READY_STATE_COMPLETED = 4;
function XH_XmlHttpInit_() {
  var XH_ACTIVE_X_IDENTS = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0",
                            "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0",
                            "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
  if (typeof XMLHttpRequest == "undefined" &&
      typeof ActiveXObject != "undefined") {
    for (var i = 0; i < XH_ACTIVE_X_IDENTS.length; i = i + 1) {
      var candidate = XH_ACTIVE_X_IDENTS[i];
      try {
        new ActiveXObject(candidate);
        XH_ieProgId_ = candidate;
        break;
      } catch (e) {
      }
    }
    if (!XH_ieProgId_) {
      throw Error("Could not create ActiveXObject. ActiveX might be disabled," +
                  " or MSXML might not be installed.");
    }
  }
}
XH_XmlHttpInit_();
function XH_XmlHttpCreate() {
  if (XH_ieProgId_) {
    return new ActiveXObject(XH_ieProgId_);
  } else {
    return new XMLHttpRequest();
  }
}
function XH_XmlHttpGET(xmlHttp, url, handler) {
  xmlHttp.onreadystatechange = handler;
  xmlHttp.open("GET", url, true);
  XH_XmlHttpSend(xmlHttp, null);
}
function XH_XmlHttpPOST(xmlHttp, url, data, handler) {
  xmlHttp.onreadystatechange = handler;
  xmlHttp.open("POST", url, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-Length", data.length);
  XH_XmlHttpSend(xmlHttp, data);
}
function XH_XmlHttpOpen(xmlHttp, verb, url, handler) {
  xmlHttp.onreadystatechange = handler;
  xmlHttp.open(verb, url, true);
}
function XH_XmlHttpSetRequestHeader(xmlHttp, name, value) {
  xmlHttp.setRequestHeader(name, value);
}
function XH_XmlHttpSend(xmlHttp, data) {
  try {
    xmlHttp.send(data);
  } catch (e) {
    log('XMLHttpSend failed ' + e.toString() + '<br>' + e.stack);
    throw e;
  }
}
function XH_XmlHttpAbort(xmlHttp) {
  SafeTimeout(window, function() {
    xmlHttp.onreadystatechange = function() {};
  }, 0);
  if (xmlHttp.readyState < XML_READY_STATE_COMPLETED) {
    xmlHttp.abort();
  }
}
var HTTP_RESPONSE_SUCCESS  = 200;
var HTTP_RESPONSE_REDIRECT = 302;
function Ajax(url, handler) {
  this.httpRequest = false;
  this.url = url;
  this.xml = null;
  this.handler = handler;
}
Ajax.prototype.MakeRequest = function() {
  var url_value = {};
  this.httpRequest = false;
  this.httpRequest = XH_XmlHttpCreate();
  if (this.httpRequest.overrideMimeType) {
    this.httpRequest.overrideMimeType('text/xml');
  } 
  if (!this.httpRequest) {
    return false;
  }
  var handler = this.ProcessResponse.bind(this);
  var indof = this.url.indexOf("?");
  if(indof != -1){
	  url_value[0] = this.url.substring(0,indof);
	  url_value[1] = this.url.substring((indof + 1));
	  XH_XmlHttpPOST(this.httpRequest, url_value[0], url_value[1], handler);
  } else {
	  XH_XmlHttpGET(this.httpRequest, this.url, handler);
  }
};
Ajax.prototype.ProcessResponse = function() {
  if (this.httpRequest.readyState == XML_READY_STATE_COMPLETED) {
    if (this.httpRequest.status == HTTP_RESPONSE_SUCCESS) {
      this.xml = this.httpRequest.responseText;
    } else if (this.httpRequest.status == HTTP_RESPONSE_REDIRECT) {
            this.httpRequest.getResponseHeader('Location');
    } else {
             this.httpRequest.status  + ": " + this.httpRequest.statusText;
    }

    this.handler(this);
  }
};
Ajax.prototype.Abort = function() {
  XH_XmlHttpAbort(this.httpRequest);
};
Function.prototype.bind = function(thisObj) {
  if (typeof(this) != "function") {
    throw new Error("Bind must be called as a method of a function object.");
  }
  var self = this;
  var staticArgs = Array.prototype.splice.call(arguments, 1, arguments.length);
  return function() { 
    var args = staticArgs.concat();
    for (var i = 0; i < arguments.length; i++) {
      args.push(arguments[i]);
    }
    return self.apply(thisObj, args);
  };
}
function BindToObject(func, obj) {
  var args = Array.prototype.splice.call(arguments, 1, arguments.length);
  return Function.prototype.bind.apply(func, args);
}
hideTab = function(id, totaltab, cname, cid){
	for (var i=0; i < totaltab; i++){
		document.getElementById('tab' + i).style.display = 'none';
	 	document.getElementById('tab' + i + '_view').className =  "tab unselectedtab";
	 }
 	document.getElementById("tab" + id).style.display = '';
 	document.getElementById('tab' + id + '_view').className = "tab selectedtab";
	writeBreadCrum(cname, cid);
	return;
}; 
toogle_news = function(nvalue) {
	var html = "";
	var label = "";
	document.getElementById("n1").innerHTML = '<A title="Text News" href="javascript:toogle_news(1)" style="font-size:12px;">Text News</A>';
	document.getElementById("n2").innerHTML = '<A title="Video News" href="javascript:toogle_news(2)" style="font-size:12px;">Video News</A>';
	document.getElementById("n3").innerHTML = '<A title="Events Calendar" href="javascript:toogle_news(3)" style="font-size:12px;">Events Calendar</A>';
	switch(nvalue) {
		case 1: 
			html = '<!-- Google Text news Element Code --><iframe frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" src="http://www.google.com/uds/modules/elements/newsshow/iframe.html?rsz=large&format=300x250&topic=h%2Cw%2Cs&element=true" scrolling="no" allowtransparency="true"></iframe>';
			document.getElementById("n1").innerHTML = 'Text News';
			break;
		case 2:
			html = '<!-- Google Video news Element Code --><iframe frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" src="http://www.google.com/uds/modules/elements/videonews/iframe.html?channel=google_news" scrolling="no" allowtransparency="true"></iframe>';
			document.getElementById("n2").innerHTML = 'Video News';
			break;
		case 3:
			html = '<!-- Google Calendar Element Code --><iframe frameborder="0" marginwidth="0" marginheight="0" border="0" style="border:0;margin:0;width:300px;height:250px;" src="http://www.google.com/calendar/embed?mode=AGENDA&amp;showTitle=0&amp;showTabs=0&amp;showPrint=0&amp;showCalendars=0&amp;wkst=1&amp;element=true&amp;src=usa__en%40holiday.calendar.google.com" scrolling="no" allowtransparency="true"></iframe>';
			document.getElementById("n3").innerHTML = 'Events Calendar';
	}
	 document.getElementById("gnews").innerHTML = "<p>" + html + "</p>";
} 
writeBreadCrum = function(cname, cid) {
	if(cname != "") {
		document.getElementById("breadcrum").innerHTML = " &#187; <a href='view.php?c="+ cid +"'>" + cname + "</a>";
	}
	return;
}; 
toggle = function(div_id, img, img_name) {
	if(document.getElementById(div_id).style.display == '') {
		document.getElementById(div_id).style.display = "none";
		document.getElementById(img).src = 'media/images/'+img_name+'_none.gif';
	} else {
		document.getElementById(div_id).style.display = "";
		document.getElementById(img).src = 'media/images/'+img_name+'.gif';
	}
	return;
}; 
containsCategories = function() {
	var contains_cat = false;
	for(i=0; i< document.category_frm.categories_check.length; i++) {
		if(document.category_frm.categories_check[i].checked) {
			contains_cat = true;
			break;
		}
	}
	return contains_cat;
}; 
showtab = function(idval, totalval, uid) {
	if(!containsCategories()) {
		document.category_frm.categories_check[idval].checked = true;
		alert("At least one category to be selected");
		return;
	}
	var selected = false;
	for(i=0; i< document.category_frm.categories_check.length; i++) {
		if(document.category_frm.categories_check[i].checked) {
			document.getElementById('tab' + i +'_view_l').style.display = '';
			document.getElementById('tab' + i +'_view').style.display = '';
			document.getElementById('tab' + i + '_view').className =  "tab unselectedtab";
			document.getElementById('tab' + i).style.display = 'none';
			if(i == idval) {
				document.getElementById('tab' + i + '_view').className = "tab selectedtab";	
				document.getElementById('tab' + i).style.display = '';
				selected = true;
			}
		} else {
			document.getElementById('tab' + i +'_view_l').style.display = 'none';
			document.getElementById('tab' + i +'_view').style.display = 'none';
			document.getElementById('tab' + i).style.display = 'none';
			document.getElementById('tab' + i + '_view').className =  "tab unselectedtab";
		}
	}
	if(!selected) {
		for(i=0; i< document.category_frm.categories_check.length; i++) {
			if(document.category_frm.categories_check[i].checked) {
				document.getElementById('tab' + i + '_view').className = "tab selectedtab";
				document.getElementById('tab' + i).style.display = '';
				break;
			}
		}
	}
	set(document.category_frm.categories_check, uid);
	return;
}; 
showpage = function(idval, totalval, cname, cid, uid) {
	if(document.category_frm.categories_check[idval].checked) {
		hideTab(idval, totalval, cname, cid);
	} else {
		if(confirm('You can view a category only when it is added. Do you want to add?')) {
			document.category_frm.categories_check[idval].checked = true;
			writeBreadCrum(cname, cid);
			showtab(idval, totalval, uid);
		}
	}
	return;
}; 
setfocus = function (textelement) {
	textelement.focus();
} 
applyPostLabelUrl = function (frm, id) {
	document.getElementById(id).href = "applylabel.php?msgId="+ frm.m.value +"&label="+ frm.label.options[frm.label.selectedIndex].value + "&labelValue=" + frm.label.options[frm.label.selectedIndex].text + "&placeValuesBeforeTB_=savedValues&TB_iframe=true&height=100&width=200&modal=true";
} 
deletePostlabel = function (lid, mid, enlabel, label ) {
	var url = "deletelabel.php?l="+ lid + "&m=" + mid +"&ln=" + enlabel;
	if(confirm("Do you want to delete label: " + label +" ? ")) {
		new Process(url, false);
		document.getElementById('lab_' + lid).style.display = "none";
	}
} 
showyellow = function(rid, idval, out) {
	var descHash = {};
	descHash['0'] = 'poor';
	descHash['1'] = 'Nothing much';
	descHash['2'] = 'Worth';
	descHash['3'] = 'Cool answer';
	descHash['4'] = 'Awesome!';
	for(i=0; i<5; i++) {
	  if((!out && i <= idval) || (out && i < idval))
	    document.getElementById('star_'+ rid +'_' + i).src = "media/images/yellow_star.gif";
	  else
	    document.getElementById('star_'+ rid +'_' + i).src = "media/images/star.gif";
	}
	if(!out)
	  document.getElementById('rating_desc_' + rid).innerHTML = descHash[idval];  
	else
	  document.getElementById('rating_desc_' + rid).innerHTML = "";
} 
showyellowByScore = function(rid, idval) {
	var html = "";
	for(i=0; i<5; i++) {
	  if(i < idval) 
	    html += "<img src=\"media/images/yellow_star.gif\" border=\"0\" />";
	  else
	  	html += "<img src=\"media/images/star.gif\" border=\"0\" />";
	}
	document.getElementById(rid + '_rating_img').innerHTML = html;
} 
sbmitRating = function(rid, idval, mid, uid) {
	document.getElementById('rating_desc_' + rid).innerHTML = '<strong>Thanks for rating!</strong>'; 
	showyellowByScore(rid, (parseInt(idval) + 1));
	var url = "rating.php?r="+ rid +"&rat="+ (parseInt(idval) + 1) +"&m="+ mid +"&u="+ uid;
	new Process(url, true, rid);
	document.getElementById('rating_desc_' + rid).innerHTML = '<strong>Rating updated!</strong>'; 
} 
gotopage = function(c, f, m, frm) {
	var url = 'view.php?ro=' + frm.ro[frm.ro.selectedIndex].value + '&c=' + c + '&f=' + f + '&m=' + m;
	document.location.href = url;
} 
check_details = function(frm) {
	var trimchar = frm.message.value.replace("\n", 'r');

	if(trim(frm.username.value, " ") == "" || trim(frm.message.value, " ") == "" || trim(trimchar, " ") == "r") {
		alert("Name and Message cannot be empty");
		return false;
	}
	return posts_shoutBox(frm, false);
} 
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
} 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
} 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
if (!window.IEPNGFix) {
	window.IEPNGFix = {};
} 
IEPNGFix.tileBG = function(elm, pngSrc, ready) {
	var data = this.data[elm.uniqueID],
		elmW = Math.max(elm.clientWidth, elm.scrollWidth),
		elmH = Math.max(elm.clientHeight, elm.scrollHeight),
		bgX = elm.currentStyle.backgroundPositionX,
		bgY = elm.currentStyle.backgroundPositionY,
		bgR = elm.currentStyle.backgroundRepeat;
	if (!data.tiles) {
		data.tiles = {
			src: '',
			cache: [],
			img: new Image(),
			old: {}
		};
	}
	var tiles = data.tiles,
		pngW = tiles.img.width,
		pngH = tiles.img.height;

	if (pngSrc) {
		if (!ready && pngSrc != tiles.src) {
			tiles.img.onload = function() {
				this.onload = null;
				IEPNGFix.tileBG(elm, pngSrc, 1);
			};
			return tiles.img.src = pngSrc;
		}
	} else {
		if (tiles.src) ready = 1;
		pngW = pngH = 0;
	}
	tiles.src = pngSrc;
	if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
		bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
		return;
	}
	var pos = {
			top: '0%',
			left: '0%',
			center: '50%',
			bottom: '100%',
			right: '100%'
		},
		x,
		y,
		pc;
	x = pos[bgX] || bgX;
	y = pos[bgY] || bgY;
	if (pc = x.match(/(\d+)%/)) {
		x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
	}
	if (pc = y.match(/(\d+)%/)) {
		y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
	}
	x = parseInt(x);
	y = parseInt(y);
	var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
		repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
	if (repeatX) {
		x %= pngW;
		if (x > 0) x -= pngW;
	}
	if (repeatY) {
		y %= pngH;
		if (y > 0) y -= pngH;
	}
	this.hook.enabled = 0;
	if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
		elm.style.position = 'relative';
	}
	var count = 0,
		xPos,
		maxX = repeatX ? elmW : x + 0.1,
		yPos,
		maxY = repeatY ? elmH : y + 0.1,
		d,
		s,
		isNew;
	if (pngW && pngH) {
		for (xPos = x; xPos < maxX; xPos += pngW) {
			for (yPos = y; yPos < maxY; yPos += pngH) {
				isNew = 0;
				if (!tiles.cache[count]) {
					tiles.cache[count] = document.createElement('div');
					isNew = 1;
				}
				var clipR = (xPos + pngW > elmW ? elmW - xPos : pngW),
					clipB = (yPos + pngH > elmH ? elmH - yPos : pngH);
				d = tiles.cache[count];
				s = d.style;
				s.behavior = 'none';
				s.left = xPos + 'px';
				s.top = yPos + 'px';
				s.width = clipR + 'px';
				s.height = clipB + 'px';
				s.clip = 'rect(' +
					(yPos < 0 ? 0 - yPos : 0) + 'px,' +
					clipR + 'px,' +
					clipB + 'px,' +
					(xPos < 0 ? 0 - xPos : 0) + 'px)';
				s.display = 'block';
				if (isNew) {
					s.position = 'absolute';
					s.zIndex = -999;
					if (elm.firstChild) {
						elm.insertBefore(d, elm.firstChild);
					} else {
						elm.appendChild(d);
					}
				}
				this.fix(d, pngSrc, 0);
				count++;
			}
		}
	}
	while (count < tiles.cache.length) {
		this.fix(tiles.cache[count], '', 0);
		tiles.cache[count++].style.display = 'none';
	}
	this.hook.enabled = 1;
	tiles.old = {
		w: elmW,
		h: elmH,
		x: bgX,
		y: bgY,
		r: bgR
	};
}; 
var toRating = false; 
var toRecentContent = false;
var r_id = ""; 
function Process(url, forRating, rid, recentContent) {
  toRating = forRating;
  toRecentContent = recentContent;
  r_id = rid;
  this.objXml_ = new Ajax(url, this.ResponseAjaxHandler.bind(this));
  this.objXml_.MakeRequest();
} 
Process.prototype.ResponseAjaxHandler = function(ajaxObj) {
  this.AjaxHandler(ajaxObj, this.displayPage);
}; 
Process.prototype.AjaxHandler = function(ajaxObj, functionCall) {
  if (ajaxObj.httpRequest.status != 200) {
    return;
  }
  var xml = toRecentContent ? ajaxObj.xml : this.convertStringToXml(ajaxObj.xml);
  if (xml === null) {
    return;
  }
  functionCall(xml);
}; 
Process.prototype.convertStringToXml = function(text){
  var doc = null;
  if (window.ActiveXObject){
    doc=new ActiveXObject("Microsoft.XMLDOM");
    doc.async="false";
    doc.loadXML(text);
  } else{
    var parser=new DOMParser();
    doc = parser.parseFromString(text,"text/xml");
  }
  return doc;
}; 
Process.prototype.displayPage = function(xml) {
	if(toRating) {
		var rootNode = xml.getElementsByTagName('root')[0];
		var items = rootNode.getElementsByTagName('rating');
		var score = getElementNodeValue(rootNode,'rating');
		showyellowByScore(r_id, score);
	} else if(toRecentContent) {
		document.getElementById("recent_content_id").innerHTML = xml;
	}
	return;
}; 
function shoutBox(name, message, display) {
  var url = "shoutbox.php";
  if(!display)
    url += "?name=" + name +"&messge=" + escape(message) + "&re=xm=";
  this.objXml_ = new Ajax(url, this.ResponseAjaxHandler.bind(this));
  this.objXml_.MakeRequest();
} 
shoutBox.prototype.ResponseAjaxHandler = function(ajaxObj) {
  this.AjaxHandler(ajaxObj, this.displayPage);
}; 
shoutBox.prototype.AjaxHandler = function(ajaxObj, functionCall) {
  if (ajaxObj.httpRequest.status != 200) {
    return;
  }
  var xml = ajaxObj.xml;
  if (xml === null) {
    return;
  }
  functionCall(xml);
}; 
shoutBox.prototype.displayPage = function(xml) {
 	document.getElementById("shoutbox_posts").innerHTML = xml;
	return;
}; 
function load_xml_content_string(xmlData) {
		if (window.ActiveXObject) {
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML(xmlData);
			return xmlDoc;
		} else if (document.implementation && document.implementation.createDocument) {
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(xmlData,"text/xml");
			return xmlDoc;
		}
	} function posts_shoutBox(frm, display) {
  if(display)
  	new shoutBox("", "", display);
  else {
    new shoutBox(frm.username.value, frm.message.value, display);
	window.document.shoutbox_frm.message.value = "";
	setfocus(window.document.shoutbox_frm.message);
  }
  return false;
} 
function shoutBoxPosts() {
  	new shoutBox("", "", true);
	setTimeout("shoutBoxPosts()", 30000);
} 
function recentConent() {
  	new Process("recentcontent.php", false, "", true);
	setTimeout("recentConent()", 50000);
} 
getElementNodeValue = function(rootNode, childName){
  var nodeValue = "";
  try {
    nodeValue = rootNode.getElementsByTagName(childName)[0].textContent;
    if(nodeValue == 'undefined' || nodeValue == null || nodeValue == '') {
      nodeValue = rootNode.getElementsByTagName(childName)[0].childNodes[0].nodeValue;
	}
  } catch(e){
    nodeValue = "";
  }
  return nodeValue;
}; 
function setCookie(cat, uid) {
  var url = "cookie.php?cat=" + cat;
  if(uid != "")
  	url += "&uid=" + uid;
  this.objXml_ = new Ajax(url, this.ResponseAjaxHandler.bind(this));
  this.objXml_.MakeRequest();
} 
setCookie.prototype.ResponseAjaxHandler = function(ajaxObj) {
  this.AjaxHandler(ajaxObj, this.displayPage);
}; 
setCookie.prototype.AjaxHandler = function(ajaxObj, functionCall) {
  if (ajaxObj.httpRequest.status != 200) {
    return;
  }
  var xml = ajaxObj.xml;
  if (xml === null) {
    return;
  }
  functionCall(xml);
}; 
setCookie.prototype.displayPage = function(xml) {
	return;
}; 
function set(catfrm, uid) {
  var catid = "";
  var catset;
  for(i=0; i< catfrm.length; i++) {
	  if(catfrm[i].checked) {
		  catid += catfrm[i].value + ",";
	  }
  }
  new setCookie(catid, uid);
}
function hideContent(idval){
	document.getElementById('content_1').style.display="none";
	document.getElementById('content_2').style.display="none";
	document.getElementById('content_'+idval).style.display="";
	if(idval == 2) {
		document.getElementById("c1").innerHTML = '<A title="Recent Content" href="javascript:hideContent(1)" style="font-size:12px;">Recent Content</A>';
		document.getElementById("c2").innerHTML = 'About us';
	} else {
		document.getElementById("c2").innerHTML = '<A title="About us" href="javascript:hideContent(2)" style="font-size:12px;">About us</A>';
		document.getElementById("c1").innerHTML = 'Recent Content';
	}
}
function display_recorder(){
	if(document.getElementById('recorder_span').innerHTML == 'Click to record voice message') {
		document.getElementById('recorder').src= "recorder/record_post.php";
		document.getElementById('recorder_span').innerHTML = "Record your voice message";
		document.getElementById('recorder').style.display = "";
		document.getElementById('setrecorder').value = "1";
	} else {
		document.getElementById('recorder').src= "";
		document.getElementById('recorder_span').innerHTML = "Click to record voice message";
		document.getElementById('recorder').style.display = "none";
		document.getElementById('setrecorder').value = "0";
	}
}