function editWidget(widget_ID, host) {
	var winProps = "width=850,height=600,titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=1,channelmode=0,directories=0,status=1";
	window.open("http://"+host+"/cms/popup.cfm?methodId=113&popup=1&wid=" + widget_ID, "widgetEditor", winProps, true);
}
function editWidgetProps(widgetType_ID, host) {
	var winProps = "width=850,height=600,titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=1,channelmode=0,directories=0,status=1";
	window.open("http://"+host+"/cms/popup.cfm?methodId=109&wtId="+widgetType_ID+"&popup=1", "widgetEditor", winProps, true);
}
function editContent(content_id) {
	var winProps = "width=800,height=570,titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=1,channelmode=0,directories=0,status=1";
	window.open("/cms/popup.cfm?methodId=8&popup=1&id=" + content_id, "contentEditor", winProps, true);

}
String.prototype.trim=function(){
    return this.replace(/^\s*|\s*$/g,'');
}
function fireEvent(element,event) {
    if (document.createEventObject) {
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}
function toggleDhtmlWin(windowName) {
	var theWindowDiv = document.getElementById(windowName);
	if(theWindowDiv.style.visibility == "visible") {
		theWindowDiv.style.visibility = "hidden";
	}
	else {
		theWindowDiv.style.visibility = "visible";
	}
	return;
}
function popUpWindow(theURL, width, height) {
	var winProps = "width=" + width + ",height=" + height;
	winProps += ",titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=1,channelmode=0,directories=0,status=1";
	window.open(theURL,"popUp",winProps,true);
}
function popUpNoResize(theURL, width, height) {
		var winProps = "width=" + width + ",height=" + height;
		winProps += ",titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=0,channelmode=0,directories=0,status=1";
		window.open(theURL,"popUp",winProps,true);
}
function popUpNoScroll(theURL, width, height) {
	var winProps = "width=" + width + ",height=" + height;
	winProps += ",titlebar=0,toolbar=0,location=0,menubar=0,scrollbars=0,resizable=1,channelmode=0,directories=0,status=1";
	window.open(theURL,"popUp",winProps,true);
}
function openwindow(theURL,theName)
{
	window.open(theURL,theName,"titlebar=1,toolbar=1,location=1,menubar=1,scrollbars=1,resizable=1,channelmode=1,directories=1,status=1width=750,height=550",true);
}
function leftPageSelector() {
	if(this.pos == 1) return;
	var onPos = this.pos-1;
  	var offPos = onPos + this.WINDOW;	  
	var on = document.getElementById("topicPageSelector"+this.widget_id+"_"+onPos);
	var off = document.getElementById("topicPageSelector"+this.widget_id+"_"+offPos);
	this.pos--;
	off.style.display = "none";
	on.style.display = "inline";
	return;
}
function rightPageSelector() {
  if(this.pos == this.WINDOW) return;
  var offPos = this.pos;
  var onPos = this.pos + this.WINDOW;	  
  var off = document.getElementById("topicPageSelector"+this.widget_id+"_"+offPos);
  var on = document.getElementById("topicPageSelector"+this.widget_id+"_"+onPos);
  this.pos++;
  off.style.display = "none";
  on.style.display = "inline";
  return;
}

function pageSelector(widget_id) {
	this.WINDOW = 5;
	this.pos = 1;
	this.leftPage = leftPageSelector;
	this.rightPage = rightPageSelector;
	this.widget_id = widget_id;
	return;
}


function buttons(name) {
	this.WINDOW = 5;
	this.pos = 1;
	this.selected = 1;
	this.prev = prev;
	this.next = next;
	this.setPage = setPage;
	this.name = name;
	return;
}
function setPage(page) {
	if(page <=  this.numberofpages) {
		var turnOffDiv = document.getElementById(this.name+this.selected);		
		var pageSelectorOff = document.getElementById(this.name+"_selector_"+this.selected);
		var pageSelectorOn = document.getElementById(this.name+"_selector_"+page);
		var turnOnDiv = document.getElementById(this.name+page);
		this.selected = page;
		turnOffDiv.style.display = "none";
		turnOnDiv.style.display = "inline-block";
		if (pageSelectorOff)
		pageSelectorOff.className = "";
		if (pageSelectorOn)
		pageSelectorOn.className= "selected";
	}
	return;
}
function prev() {
	if(this.selected > 1) {
		var page = parseInt(this.selected)-1;
		this.setPage(page);
	}
	
	if(this.pos == 1) return;
	var onPos = this.pos-1;
  	var offPos = onPos + this.WINDOW;	  
	var on = document.getElementById(this.name+"_selector_"+onPos);
	var off = document.getElementById(this.name+"_selector_"+offPos);
	this.pos--;
	off.style.display = "none";
	on.style.display = "inline";
	
	return;
}

function next() {
	// we need to find the selected page and increment it
	if(this.selected <  this.numberofpages) {
		var page = parseInt(this.selected)+1;
		this.setPage(page);
	}
	
  if(this.pos == this.WINDOW) return;
  var offPos = this.pos;
  var onPos = this.pos + this.WINDOW;	  
  var off = document.getElementById(this.name+"_selector_"+offPos);
  var on = document.getElementById(this.name+"_selector_"+onPos);
  this.pos++;
  off.style.display = "none";
  on.style.display = "inline";
  return;
}

function emailCheck(emailStr) {
	/*  author: Sandeep V. Tamhankar (stamhankar@hotmail.com) 	*/
	/* conforms closely to RFC 822.                       		*/
	
	/* The following pattern is used to check if the entered e-mail address 	*/
	/* fits the user@domain format.  It also is used to separate the username 	*/
	/* from the domain. 														*/
	var emailPat=/^(.+)@(.+)$/;
	/* The following string represents the pattern for matching all special		*/
	/*  characters.  We don't want to allow special characters in the address. 	*/
	/*  These characters include ( ) < > @ , ; : \ " . [ ]    					*/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	/* The following string represents the range of characters allowed in a 	*/
	/* username or domainname.  It really states which chars aren't allowed. 	*/
	var validChars="\[^\\s" + specialChars + "\]";
	/* The following pattern applies if the "user" is a quoted string (in	*/
	/* which case, there are no rules about which characters are allowed	*/
	/* and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com 	*/
	/* is a legal e-mail address. 											*/
	var quotedUser="(\"[^\"]*\")";
	/* The following pattern applies for domains that are IP addresses,  	*/
	/* rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal		*/
	/*  e-mail address. NOTE: The square brackets are required. 			*/
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	/* The following string represents an atom (basically a series of non-special characters.) */
	var atom=validChars + '+';
	/* The following string represents one word in the typical username.*/
	/* For example, in john.doe@somewhere.com, john and doe are words.  */
	/* Basically, a word is either an atom or quoted string. 			*/
	var word="(" + atom + "|" + quotedUser + ")";
	// The following pattern describes the structure of the user
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	/* The following pattern describes the structure of a normal symbolic domain, as opposed to ipDomainPat, shown above. */
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")	;
	/* Finally, let's start trying to figure out if the supplied address is valid. */	
	/* Begin with the coarse pattern to simply break up user@domain into different pieces that are easy to analyze. */
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
	/* Too many/few @'s or something; basically, this address doesn't even fit the general mould of a valid e-mail address. */
		alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	
	// See if "user" is valid 
	if (user.match(userPat)==null) {
	    // user is not valid
	    alert("The username doesn't seem to be valid.");
	    return false;
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		        alert("Destination IP address is invalid!");
			return false;
		    }
	    }
	    return true;
	}	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.");
	    return false;
	}	
	/* domain name seems valid, but now make sure that it ends in a 			*/
	/* three-letter word (like com, edu, gov) or a two-letter word,				*/
	/*  representing country (uk, nl), and that there's a hostname preceding  	*/
	/*   the domain or country. 												*/
	
	/* Now we need to break up the domain to get a count of how many atoms it consists of. */
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || 
	    domArr[domArr.length-1].length>4) {
	   // the address must end in a two, three, or four letter word (four letter to support the .name domain)
	   alert("The address must end in a three or four letter domain, or two letter country.");
	   return false;
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr="This address is missing a hostname!";
	   alert(errStr);
	   return false;
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}

/*function trackClick(contentID,destURL,userID,trackingKey,title) {
	var xmlhttp = false;
	var theURL = "http://cms.devx.com/RSSLinkTracker/RSSLinkTracker.cfm?contentID=" + contentID + "&destURL=" + destURL + "&userID=" + userID + "&trk=" + trackingKey + "&title=" + title;

    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	   try {
		   xmlhttp = new XMLHttpRequest();
	   } catch (e) {
		   xmlhttp=false;
	   }
    }
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	
	xmlhttp.open("GET", theURL, true);
	
	 xmlhttp.send(null)
}
*/


