/* /////////////////////////////////////////////////////  Ajax XMLHTTP Request Scripts \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ */

//Declaration
var xmlhttp;

/* Public Functions */
function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

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

// this deletes the cookie when called
function Delete_Cookie(name, path, domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}


// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}



//Get QureyString Value
function getQuerystring(key, default_)
{
  if (default_==null) default_="";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}


//State Changed Event
function LoginStateChanged() {

    document.getElementById('AjaxDiv').style.visibility = "visible";
    document.getElementById('AjaxDiv').style.display = "inline";
    document.getElementById('statusDiv').style.visibility = "hidden";
    document.getElementById('statusDiv').style.display = "none";
    if (xmlhttp.readyState == 4) {
    
	if(xmlhttp.responseText == "true") {
	        document.getElementById("ErrorDiv").innerHTML = "'" + document.getElementById("EmailCtl").value + "' is not registred with us.Please check the provided Email Address (or) Register using the form below to download the Article.";
		document.getElementById("NewEmailCtl").value = document.getElementById("EmailCtl").value;
		document.getElementById("FirstNameCtl").focus();
		
	}
	else if(xmlhttp.responseText == "false")
		document.getElementById("AjaxDiv").innerHTML = "Please Login again";
	else 
	    document.getElementById("AjaxDiv").innerHTML = xmlhttp.responseText;
	
    }
}

function stateChanged() {
    if (xmlhttp.readyState == 4) {
	        document.getElementById("AjaxDiv").innerHTML = xmlhttp.responseText;
    }
}

function stateChangedAdmin() {

    if (xmlhttp.readyState == 4) {
	if(xmlhttp.responseText == "true")
	{
		document.getElementById("errorMsg").innerHTML = "";
	   document.getElementById("AdminLoginContainer").style.visibility = "hidden";
	   document.getElementById("AdminLoginContainer").style.display = "none";
	   document.getElementById("UploadContainer").style.visibility = "visible";
	   document.getElementById("UploadContainer").style.display = "inline";
	   GetUploadedArticles();
	    
	}   
    else if(xmlhttp.responseText == "false")
		document.getElementById("errorMsg").innerHTML = "*UserName and Password is not valid";
    else
	{
	    document.getElementById("errorMsg").innerHTML = "Unable to connect to the server";	   
	}
    }
}

function stateChangedArticleDelete() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.responseText == "true") {
            document.getElementById("ErrorDivCtl").innerHTML = "Article Deleted";
            GetUploadedArticles();
        }
        else {
            document.getElementById("ErrorDivCtl").innerHTML = "Unable to Delete Article, Please try after sometime";
			//document.getElementById("ErrorDivCtl").innerHTML = xmlhttp.responseText;
        }
    }
}

function stateChangedArticleUpdated() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.responseText == "true") {
            document.getElementById("articleTitleCtl").value = "";
            document.getElementById("RegRequiredCtl").checked = false;
            document.getElementById("file").disabled = false;
            document.getElementById('SubmitBtn').style.visibility = "visible";
            document.getElementById('SubmitBtn').style.display = "inline";
            document.getElementById('UpdateBtn').style.visibility = "hidden";
            document.getElementById('UpdateBtn').style.display = "none";
            document.getElementById("ErrorDivCtl").innerHTML = "Article Updated";
            GetUploadedArticles();
        }
        else {
            document.getElementById("ErrorDivCtl").innerHTML = "Unable to Updated Article, Please try after sometime. Error:" + xmlhttp.responseText;
        }
    }
}


function stateChangedUpload()
{
    if (xmlhttp.readyState == 4) {
    if(xmlhttp.responseText != "uploaded")
	{
	   document.getElementById("AdminLoginContainer").style.visibility = "hidden";
	   document.getElementById("AdminLoginContainer").style.display = "none";
	   document.getElementById("UploadContainer").style.visibility = "visible";
	   document.getElementById("UploadContainer").style.display = "inline";	
	   document.getElementById("UploadContainer").innerHTML = xmlhttp.responseText
	   
	}   
    
    else
	{
	   	   
	   document.getElementById("AdminLoginContainer").style.visibility = "hidden";
	   document.getElementById("AdminLoginContainer").style.display = "none";
	   document.getElementById("UploadContainer").style.visibility = "visible";
	   document.getElementById("UploadContainer").style.display = "inline";
	   GetUploadedArticles();
	   
	}
    }
}

//Get XMLHTTPObject
function GetXmlHttpObject() {
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject) {
        // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

//Clear Label and Textbox.
function empty(objctl) {
    objctl.value = "";
}

//Show Label.
function showthis(objectl, val) {
    if (objectl.value == '')
        objectl.value = val;

}
/*End Public Functions */

////////////////////////// Page Calls \\\\\\\\\\\\\\\\\\\\\\\\\


/* Resources.htm */

function DisplayArticles()
{

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="Resources.htm.php";
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);

}

/* End Resources.htm */


/* Registration.htm */

//Ajax Call
function RegisterNewUser(ArticleId) {

if (ValidateNewUser())
{

    xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = "Registration.htm.php";
    url = url + "?Email=" + document.getElementById('NewEmailCtl').value;
    url = url + "&FirstName=" + document.getElementById('FirstNameCtl').value;
    url = url + "&LastName=" + document.getElementById('LastNameCtl').value;
    url = url + "&City=" + document.getElementById('CityCtl').value;
    url = url + "&State=" + document.getElementById('StateCtl').value;
    url = url + "&Country=" + document.getElementById('CountryCtl').value;
    url = url + "&Id=" + ArticleId;
    url = url + "&User=New";
    xmlhttp.onreadystatechange = stateChanged;
    xmlhttp.open("POST", url, true);
    xmlhttp.send(null);

}

return false;

}

function LoginExistingUser(ArticleId) {

if (ValidateRegUser())
{

    xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = "Registration.htm.php";
    url = url + "?Email=" + document.getElementById('EmailCtl').value;
    url = url + "&Id=" + ArticleId;
    url = url + "&User=Existing";
    xmlhttp.onreadystatechange = LoginStateChanged;
    xmlhttp.open("POST", url, true);
    xmlhttp.send(null);

}

return false;

}

function SendMailtoLoggedInUser(ArticleId,UserId)
{
	document.getElementById('AjaxDiv').style.visibility = "hidden";
	document.getElementById('AjaxDiv').style.display = "none";
	document.getElementById('statusDiv').style.visibility = "visible";
	document.getElementById('statusDiv').style.display = "inline";
	
	xmlhttp = GetXmlHttpObject();
    if (xmlhttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = "Registration.htm.php";
    url = url + "?User_Id=" + UserId;
    url = url + "&Id=" + ArticleId;
    url = url + "&User=loggedin";
    xmlhttp.onreadystatechange = LoginStateChanged;
    xmlhttp.open("POST", url, true);
    xmlhttp.send(null);
	return false;
}

//Client-side validation for New User registration.
function ValidateNewUser() {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var EmailAddress = document.getElementById('NewEmailCtl').value;
    var FirstName = document.getElementById('FirstNameCtl').value;
    var LastName = document.getElementById('LastNameCtl').value;
    var City = document.getElementById('CityCtl').value;
    var State = document.getElementById('StateCtl').value;
    var Country = document.getElementById('CountryCtl').value;
    var flag = true;

    //Email Validator
    if (reg.test(EmailAddress) == false) {
        document.getElementById('NewEmailLbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('NewEmailLbl').style.color = "#676767";
    }
    //First Name Validator
    if (FirstName == '') {
        document.getElementById('FirstNamelbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('FirstNamelbl').style.color = "#676767";
    }
    //Last Name Validator
    if (LastName == '') {
        document.getElementById('LastNamelbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('LastNamelbl').style.color = "#676767";
    }

    //City Validator
    if (City == '') {
        document.getElementById('Citylbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('Citylbl').style.color = "#676767";
    }

    //State Validator
    if (State == '') {
        document.getElementById('Statelbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('Statelbl').style.color = "#676767";

    }

    //Country Validator

    if (Country == '--Select--') {
        document.getElementById('Countrylbl').style.color = "red";
        flag = false;
    }
    else {
        document.getElementById('Countrylbl').style.color = "#676767";

    }

    return flag;
}

//Validate Existing User
function ValidateRegUser() {

    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var address = document.getElementById('EmailCtl').value;
    if (reg.test(address) == false) {
        document.getElementById('EmailLbl').style.color = "red";
        return false;

    }
    else {
        document.getElementById('EmailLbl').style.color = "#676767";
        return true;
    }
}


/* End Registration.htm */


/* Admin.htm */

//Ajax Call//
function GetUploadedArticles()
{

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="Admin.htm.php";
url=url+"?page=upload";
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("POST",url,true);
xmlhttp.send(null);

}

function AdminLogout() {

    var d = new Date();
    document.cookie = "adminuser='';expires=" + d.toGMTString() + ";" + ";";
    document.getElementById("AdminLoginContainer").style.visibility =  "visible";
    document.getElementById("AdminLoginContainer").style.display = "inline";
    document.getElementById("AdminUserNameCtl").value = "";
    document.getElementById("AdminPwdCtl").value = "";
    document.getElementById("UploadContainer").style.visibility = "hidden";
    document.getElementById("UploadContainer").style.display = "none";
    return false;
}

function AuthenticateAdminUser() {
    

        if (ValidateAdminUser()) {

            xmlhttp = GetXmlHttpObject();
            if (xmlhttp == null) {
                alert("Browser does not support HTTP Request");
                return;
            }
            var url = "Admin.htm.php";
            url = url + "?page=login";
            url = url + "&id=" + document.getElementById('AdminUserNameCtl').value;
            url = url + "&pwd=" + document.getElementById('AdminPwdCtl').value;
            xmlhttp.onreadystatechange = stateChangedAdmin;
            xmlhttp.open("POST", url, true);
            xmlhttp.send(null);
        }
    
    
return false;

}

function DeleteArticle(ArticleId) {
        xmlhttp = GetXmlHttpObject();
        if (xmlhttp == null) {
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "Admin.htm.php";
        url = url + "?page=delete";
        url = url + "&articleid=" + ArticleId;
        xmlhttp.onreadystatechange = stateChangedArticleDelete;
        xmlhttp.open("POST", url, true);
        xmlhttp.send(null);
        return false;

}

function EditArticle(ArticleId, Title, Url, IsRegRequired) {

    document.getElementById('articleTitleCtl').value = Title;
    document.getElementById('HidArticleIdCtl').value = ArticleId;
    if (IsRegRequired == 1) {
        document.getElementById('RegRequiredCtl').checked = true;
    } else {
    document.getElementById('RegRequiredCtl').checked = false;
    }
    document.getElementById('file').disabled = true;

    document.getElementById('SubmitBtn').style.visibility = "hidden";
    document.getElementById('SubmitBtn').style.display = "none";
    document.getElementById('UpdateBtn').style.visibility = "visible";
    document.getElementById('UpdateBtn').style.display = "inline";
    document.getElementById('articleTitleCtl').focus();
    

    return false;

}

function UpdateArticle() {
        xmlhttp = GetXmlHttpObject();
        if (xmlhttp == null) {
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "Admin.htm.php";
        url = url + "?page=update";
        url = url + "&articleid=" + document.getElementById('HidArticleIdCtl').value;
        url = url + "&title=" + document.getElementById('articleTitleCtl').value;
        url = url + "&IsRegRequired=" + document.getElementById('RegRequiredCtl').checked;
        xmlhttp.onreadystatechange = stateChangedArticleUpdated;
        xmlhttp.open("POST", url, true);
        xmlhttp.send(null);
    return false;

}

function UploadFile()
{
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	  {
		  alert ("Browser does not support HTTP Request");
		  return;
	  }
	var url="upload_file.php";
	url=url+"?ctl=" + document.getElementById('uploaded').name;
	xmlhttp.onreadystatechange=stateChangedUpload;
	xmlhttp.open("POST",url,true);
	xmlhttp.send(null);
	
	return false;
}

//End Ajax Call//

//Client-Side validation//
function ValidateAdminUser() {

var flag = true;
var adminusername = document.getElementById('AdminUserNameCtl').value ;
var adminpwd = document.getElementById('AdminPwdCtl').value;

    if (adminusername == '') 
    {
        document.getElementById('AdminUserNamelbl').style.color = "red";
        flag = false;
    }
    if(adminpwd == '')
    {
	document.getElementById('AdminPwdlbl').style.color = "red";
        flag = false;
    }
        
    return flag;

    
}

function upload()
{
    if (ValidateUploadData()) {
        document.getElementById('submitDiv').style.visibility = 'hidden';
        document.getElementById('submitDiv').style.display = 'none';

        document.getElementById('ProgressDiv').style.visibility = 'visible';

        document.getElementById('ProgressDiv').style.display = 'inline';

        return true;
    }
    else {
        return false;
    }

    }

    function ValidateUploadData() {
        var flag = true;


        if (document.getElementById('articleTitleCtl').value == '') {
            document.getElementById('articleTitleLbl').style.color = "red";
            flag = false;
        }
        else {
            document.getElementById('articleTitleLbl').style.color = "#676767";
        }
        if (document.getElementById('file').value.length == 0) {
            document.getElementById('UploadTitleLbl').style.color = "red";
            flag = false;
        }
        else {
            document.getElementById('UploadTitleLbl').style.color = "#676767";
        }
        return flag;
    }
//End Client-Side validation//


/* End Admin.htm */


    /* ArticleReport.htm */

    function DisplayArticlesCount() {

        xmlhttp = GetXmlHttpObject();
        if (xmlhttp == null) {
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "ArticleReport.htm.php";
        xmlhttp.onreadystatechange = stateChanged;
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);

    }

    /* End ArticleReports.htm */




    /* UserReport.htm */

    function DisplayUserCount() {

        xmlhttp = GetXmlHttpObject();
        if (xmlhttp == null) {
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "UserReport.htm.php";
        xmlhttp.onreadystatechange = stateChanged;
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);

    }

    /* End UserReport.htm */





////////////////////////// End Page Calls \\\\\\\\\\\\\\\\\\\\\\\\\


/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

