/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function removeMSWordChars(str) {
    var myReplacements = new Array();
    var myCode, intReplacement;
    myReplacements[8216] = 39;
    myReplacements[8217] = 39;
    myReplacements[8220] = 34;
    myReplacements[8221] = 34;
    myReplacements[8212] = 45;
    for(c=0; c<str.length; c++) {
        var myCode = str.charCodeAt(c);
        if(myReplacements[myCode] != undefined) {
            intReplacement = myReplacements[myCode];
            str = str.substr(0,c) + String.fromCharCode(intReplacement) + str.substr(c+1);
        }
    }
    return str;
}

function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}

var http = createObject();

/* -------------------------- */
/* LOGIN */
/* -------------------------- */
/* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */
var nocache = 0;
/* Holds a callback request that replaces default behavior after login submission */
var loginCallback=false;
var joinInRedirectURL;
/* Holds content [ff fix] */
var postContent='';
function login() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
	var username = encodeURI(document.getElementById('username').value);
	var password = encodeURI(document.getElementById('password').value);
	var loginpost = encodeURI(document.getElementById('loginpost').value);
	// Set te random number to add to URL request
	nocache = Math.random();
	// Pass the login variables like URL variable
	//http.open('get', 'test.php?username='+username+'&password='+password+'&nocache = '+nocache);
	http.open("GET", '/feed/ssi/functions.php' + '?username=' + escape(username) + '&password=' + escape(password)  + '&post=' + escape(loginpost)+ '&nocache='+ escape(nocache), true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.send('username=' + escape(username) + '&password=' + escape(password)  + '&post=' + escape(loginpost)+ '&nocache='+ escape(nocache));
	http.onreadystatechange = loginReply;
}
function loginonly() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
	var username = encodeURI(document.getElementById('username').value);
	var password = encodeURI(document.getElementById('password').value);
	var loginpost = encodeURI(document.getElementById('loginpost').value);
	// Set te random number to add to URL request
	nocache = Math.random();
	// Pass the login variables like URL variable
	//http.open('get', 'test.php?username='+username+'&password='+password+'&nocache = '+nocache);
	http.open("GET", '/feed/ssi/functions.php' + '?username=' + escape(username) + '&password=' + escape(password)  + '&post=' + escape(loginpost)+ '&nocache='+ escape(nocache), true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.send('username=' + escape(username) + '&password=' + escape(password)  + '&post=' + escape(loginpost)+ '&nocache='+ escape(nocache));
	http.onreadystatechange = loginonlyReply;
}
function validate() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
	var token=getCookie('MultiFeed_auth_ticket');
	if(token==''){
			replaceDiv('loginerror','block','Please login so we can post your update!');
			replaceDiv('logindiv','block');
			replaceDiv('searchposttable','none');
	} else {
		// Set te random number to add to URL request
		nocache = Math.random();
		// Pass the login variables like URL variable
		//http.open('get', 'test.php?username='+username+'&password='+password+'&nocache = '+nocache);
		http.open("GET", '/feed/ssi/functions.php' + '?token=' + escape(token) + '&post=' + escape(post)   + '&nocache='+ escape(nocache), true);
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.send('token=' + escape(token) + '&post=' + escape(post)+ '&nocache='+ escape(nocache));
		http.onreadystatechange = validateReply;
	}
}
function prepost(from) {
	//we're cheating and saving the content into a cookie.  it's the only workaround we can come up with to get this working in FF.
	var postContent=getCookie('MultiFeed_content');
	if(postContent==''){
		/* first attempt to post */
		if (document.getElementById('content')) {
			// widget content
			postContent = (document.getElementById('content').value);
		} else if ((document.getElementById('sc3_text')) && (document.getElementById('sc3_text').value!='')) {
			// guide content
			postContent = (document.getElementById('sc3_text').value);
		} else if (document.getElementById('sc2_text')) {
			// guide content
			postContent = (document.getElementById('sc2_text').value);
		}	
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+1);
		document.cookie="MultiFeed_content=" +escape(postContent)+ "; expires=" + (exdate.toUTCString()) + "; path=/";
	} else {
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+1);
		var empty = '';
		document.cookie="MultiFeed_content=" +escape(empty)+ "; expires=" + (exdate.toUTCString()) + "; path=/";
	}
	var token=getCookie('MultiFeed_auth_ticket');
	if(token==''){
			replaceDiv('loginerror','block','Please login so we can post your update!');
			replaceDiv('logindiv','block');
			replaceDiv('postandlogin','block');
			replaceDiv('loginbr','block');
			replaceDiv('loginbl','block');
			replaceDiv('postbr','none');
			replaceDiv('postbl','none');
			if (document.getElementById('searchposttable')) {
				replaceDiv('searchposttable','none');
			}
	} else {
			replaceDiv('urlDiv','block');
			cornerAll();
			replaceDiv('logindiv','none');
			replaceDiv('prepostbutton','none');
			replaceDiv('postbutton','block');
			if(from=='login') {
				if (document.getElementById('content')) {
					// widget content
					document.getElementById('content').value = postContent;
				} else if (document.getElementById('content2')) {
					// guide content
					(document.getElementById('content2').value) = postContent;
				} else if ((document.getElementById('sc3_text')) && (document.getElementById('sc3_text').value!='')) {
					// guide content
					(document.getElementById('sc3_text').value) = postContent;
				} else if (document.getElementById('sc2_text')) {
					// guide content
					(document.getElementById('sc2_text').value) = postContent;
				}
			}
	}
}
function post() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	// Required: verify that all fields is not empty. Use encodeURI() to solve some issues about character encoding.
	if (document.getElementById('content')) {
		// widget content
		var content = (document.getElementById('content').value);
	} else if ((document.getElementById('sc3_text')) && (document.getElementById('sc3_text').value!='')) {
		// guide content
		var content = (document.getElementById('sc3_text').value);
	} else if (document.getElementById('sc2_text')) {
		// guide content
		var content = (document.getElementById('sc2_text').value);
	}
	if (document.getElementById('url')) {
		// widget content
		var url = (document.getElementById('url').value);
		url = encodeURI(removeMSWordChars(url));
	}
	// replace from saved var
	if (content.length == 0)
	{
		content = postContent;
	}
	content = encodeURI(removeMSWordChars(content));
	var feedpost = encodeURI(document.getElementById('feedpost').value);
	var token=getCookie('MultiFeed_auth_ticket');
	if(token==''){
			var exdate=new Date();
			exdate.setDate(exdate.getDate()+1);
			document.cookie="MultiFeed_content=" +content+ "; expires=" + (exdate.toUTCString()) + "; path=/";
			replaceDiv('loginerror','block','Please login so we can post your update!');
			replaceDiv('logindiv','block');
			if (document.getElementById('searchposttable')) {
				replaceDiv('searchposttable','none');
			}
	} else {
		if (content.length == 0) {
			replaceDiv('posterror','block','Please enter a post!');
			replaceDiv('searchposttable','block');
		} else {
		// Set the random number to add to URL request
			nocache = Math.random();
			// Pass the login variables like URL variable
			//http.open('get', 'test.php?username='+username+'&password='+password+'&nocache = '+nocache);
			http.open("GET", '/feed/ssi/functions.php' + '?token=' + escape(token) + '&post=' + escape(feedpost)  + '&content=' + escape(content) + '&url=' + escape(url) + '&nocache='+ escape(nocache), true);
			http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http.send('token=' + escape(token) + '&post=' + escape(feedpost)+ '&nocache='+ escape(nocache));
			http.onreadystatechange = postReply;
		}
	}
}
// preserves IE corner by removing & adding div to DOM
// expects div id, new content, new display style
function replaceDiv(divId,displayStyle,newInnerHTML) {
	var temp = document.getElementById(divId);
	if (temp != null) {
		var newTemp = temp.cloneNode(true);
		if (!(newInnerHTML === undefined))
		{
			newTemp.innerHTML = newInnerHTML;
		}
		if (!(displayStyle === undefined))
		{	
			newTemp.style.display = displayStyle;
		}	
		document.getElementById(divId).parentNode.replaceChild(newTemp,temp);
	}
}
function loginReply(postContent) {
	/* first attempt to post */
	if (document.getElementById('content')) {
		// widget content
		postContent = (document.getElementById('content').value);
	} else if ((document.getElementById('sc3_text')) && (document.getElementById('sc3_text').value!='')) {
		// guide content
		postContent = (document.getElementById('sc3_text').value);
	} else if (document.getElementById('sc2_text')) {
		// guide content
		postContent = (document.getElementById('sc2_text').value);
	}
	if(http.readyState == 4){
		var response = http.responseText;
		if(response == 0){
			// if login fails
			replaceDiv('loginerror','block','Login failed! Verify username and password');
			//document.getElementById('loginerror').innerHTML = 'Login failed! Verify username and password';
			replaceDiv('logindiv','block');
			//replaceDiv('loginerror','Login failed! Verify username and password','block');
			// else if login is ok show a message: "Welcome + the user name".
		} else {
			var exdate=new Date();
			exdate.setDate(exdate.getDate()+3);
			document.cookie="MultiFeed_auth_ticket=" +escape(response)+ "; expires=" + (exdate.toUTCString()) + "; path=/";
			if (document.getElementById('content')) {
				replaceDiv('content','block');
				replaceDiv('searchposttable','block');
				replaceDiv('logindiv','none');
				replaceDiv('postbr','block');
				replaceDiv('postbl','block');
			}
			// check for alternative action
			if ((loginCallback) && (loginCallback != null)) {
				joinInNowRedirect();
			} else {	
				prepost('login',postContent);
				//window.location.href='/feed/index.php';
			}	
		}
	}
}
function loginonlyReply() {
	if(http.readyState == 4){
		var response = http.responseText;
		if(response == 0){
			// if login fails
			replaceDiv('loginerror','block','Login failed! Verify username and password');
			//document.getElementById('loginerror').innerHTML = 'Login failed! Verify user and password';
			// else if login is ok show a message: "Welcome + the user name".
		} else {
			var exdate=new Date();
			exdate.setDate(exdate.getDate()+3);
			document.cookie="MultiFeed_auth_ticket=" +escape(response)+ "; expires=" + (exdate.toUTCString()) + "; path=/";
			window.location.href='/feed/index.php';
		}
	}
}
function postReply() {
	if(http.readyState == 4){
		var response = http.responseText;
		if(response=='tokenfailed') {
			replaceDiv('loginerror','block','Sorry, please login so we can post your update!');
			//document.getElementById('loginerror').innerHTML = 'Sorry, please login so we can post your update!';
			var d = new Date();
			document.cookie="MultiFeed_auth_ticket=1;expires=" + d.toGMTString() + ";" + ";";
				if(document.getElementById('searchposttable')) {
					replaceDiv('searchposttable','none');
					replaceDiv('logindiv','block');
				}
		} else if(response == 0){
			// if login fails
			replaceDiv('posterror','block','Sorry, post failed.  Please try again later.');
			replaceDiv('searchposttable','block');
			// else if login is ok show a message: "Welcome + the user name".
		} else {
			if (document.getElementById('content')) {
				document.getElementById('content').value = '';
				replaceDiv('posterror','block','');
				replaceDiv('posterror','block','Post Successful.');
				replaceDiv('searchposttable','block');
			} else if ((document.getElementById('sc3_text')) && (document.getElementById('sc3_text').value!='')) {
				document.getElementById('sc3_text').value = '';
			}else {
				document.getElementById('sc2_text').value = '';
			}
			if (document.getElementById('url')) {
				document.getElementById('url').value = '';
			}
			// reload the iframe
			if (document.getElementById('iFeed')) {
				var f = document.getElementById('iFeed');
				f.contentWindow.location.reload(true);
			}
			// clear the post content cookie
			deleteCookie('MultiFeed_content');
		}
	}
}

function getCookie(c_name)
{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1)
		{
		c_start=c_start + c_name.length+1;
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end));
		}
	  }
	return "";
}
function deleteCookie(c_name)
{
	var cookie_date = new Date ( );  // current date & time
	//cookie_date.setTime ( cookie_date.getTime() - 1 );
	cookie_date.setTime(cookie_date.getTime()+(-1*24*60*60*1000));
	document.cookie = c_name += "=; expires=" + cookie_date.toGMTString();	
}
function joinIn(url) {
	// new behavior
	window.location.href=url;
	/*
	joinInRedirectURL = url;
	var token=getCookie('MultiFeed_auth_ticket');
	if(token==''){
		loginCallback = true;
		// show login
		document.getElementById('logindiv').style.display = 'block';
	} else {
		// they're logged in - redirect
		joinInNowRedirect();
	}
	*/	
}
function joinInNowRedirect() {
	loginCallback = false;
	window.location.href=joinInRedirectURL;
}
	
function sendemail() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
	var email = encodeURI(document.getElementById('email').value);
	if (email.length == 0) {
		replaceDiv('emailerror','block','Please enter your email address.');
		replaceDiv('emaildiv','block');
		replaceDiv('postandlogin','block');
	} else {	
		if (document.getElementById('content')) {
			var content = encodeURI(document.getElementById('content').value);
		}
		var project = encodeURI(document.getElementById('project').value);
		// Set te random number to add to URL request
		nocache = Math.random();
		// Pass the login variables like URL variable
		//http.open('get', 'test.php?username='+username+'&password='+password+'&nocache = '+nocache);
		http.open("GET", '/feed/ssi/functions.php' + '?email=' + escape(email) + '&content=' + escape(content) + '&project=' + escape(project)  + '&nocache='+ escape(nocache), true);
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.send('email=' + escape(email) + '&project=' + escape(project)  + '&content=' + escape(content)  + '&nocache='+ escape(nocache));
		http.onreadystatechange = emailReply;
	}	
}
function emailReply() {
	if(http.readyState == 4){
		var response = http.responseText;
		replaceDiv('emailerror','block',response);
		replaceDiv('emaildiv','block');
		replaceDiv('postandlogin','block');
	}
}
