/**
* Javascript file containing common methods to create AJAX requests
**/


function getXMLHTTPinstance()
{
 var xmlhttp = false;

 try
 {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch (e)
 {
  try
  {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (E)
  {
   xmlhttp = false;
  }
 }

 if (!xmlhttp && typeof XMLHttpRequest!='undefined')
 {
  xmlhttp = new XMLHttpRequest();
 }
 return xmlhttp;
}

/**
* function for AJAX request
**/
function http_fetch_sync(url,post_data)
{

  global_xmlhttp = getXMLHTTPinstance();

  var method = 'GET';
   if ( typeof(post_data) != 'undefined' )
   {
     method = 'POST';
   }

 try
 {
 //global_xmlhttp.open(method, url,true);
 global_xmlhttp.open(method, url,false);
 }
 catch(e)
 {
   alert('message:'+e.message+":url:"+url);
 }
 if ( method == 'POST')
 {
   global_xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 }

 global_xmlhttp.send(post_data);
 var args = {"responseText":global_xmlhttp.responseText,"responseXML":global_xmlhttp.responseXML};
 return args;

}

function show_page(module, action, entryId, pageNo, Reverse)
{
  var videoId;
  var topicKey;
  var forumKey;

  videoId = $("VideoID").value;
  topicKey = $("TopicKey").value;
  forumKey = $("ForumKeyDep").value;
	//var returnstuff = http_fetch_sync('controller.php','module='+module+'&action='+action+'&videoId='+videoId+'&topicKey='+topicKey+'&forumKey='+forumKey+'&pageNo='+pageNo+'&Reverse='+Reverse);
	var returnstuff = http_fetch_sync('/fod/includes/user_reviews.php','videoId='+videoId+'&topicKey='+topicKey+'&forumKey='+forumKey+'&pageNo='+pageNo+'&Reverse='+Reverse);
	$("userReviews").innerHTML = returnstuff.responseText;
}

function sort_comments(module, action, entryId, pageNo, Reverse)
{
  var videoId;
  var topicKey;
  var forumKey;

  videoId = $("VideoID").value;
  topicKey = $("TopicKey").value;
  forumKey = $("ForumKeyDep").value;
	//var returnstuff = http_fetch_sync('controller.php','module='+module+'&action='+action+'&videoId='+videoId+'&topicKey='+topicKey+'&forumKey='+forumKey+'&pageNo='+pageNo+'&Reverse='+Reverse);
	var returnstuff = http_fetch_sync('/fod/includes/user_reviews.php','videoId='+videoId+'&topicKey='+topicKey+'&forumKey='+forumKey+'&pageNo='+pageNo+'&Reverse='+Reverse);
	$("userReviews").innerHTML = returnstuff.responseText;;
}

function login(Username, Password, suffix, event)
{
  $("error_signin"+suffix).className = "error";
  if (Username == '' || Username == 'Email Address' || Password == '' || Password == 'Password')
  {
    $("error_signin"+suffix).innerHTML = "Email Address / Password should not be empty";
    $("error_signin"+suffix).style.display = '';
    //Effect.Appear("error_signin"+suffix);
    return false;
  }

  var returnstuff = http_fetch_sync('/controller.php','module=profiles&action=call_snap&callmethod=Signin&snap_request=post&return_function=callback_signin_ajax&Username='+Username+'&Password='+Password);

  if (returnstuff.responseText == 'error')
  {
    alert("There is a problem connecting to the server.\nPlease try again later");
    return false;
  }
  if (returnstuff.responseText.indexOf('Success') != -1)
  {
    //document.getElementById("signin"+suffix).style.display='none';
    if (suffix != '_player')
    {
      $('signin'+suffix).popup.hide();
    }
    else
    {
      $("signin_player").style.display = 'none';
      $("add_comments_player").style.display = '';
    }
    response = returnstuff.responseText.split(';');


	  if (typeof ActiveUser == 'object') {
		  ActiveUser.loginUser(response[1]);
	  }
	  else {
		  $("signInSignOut").innerHTML = "Hi "+response[1]+" <span class='yellowText'>\\</span> <a href='#' onclick='sign_out();return false;'>Sign Out</a>";
		  $("signInSignUp").style.display = 'none';
		  $("signInSignOut").style.display = '';
	  }

    if (suffix != '_header' && suffix != '_player')
    {
      var x;
      var y;
      var coordinate;
      x = $("X_position").value;
      y = $("Y_position").value;
      coordinate = eval("'"+x+","+y+"'");

      new Popup('add_comments'+suffix,null,{position: coordinate});
      $('add_comments'+suffix).popup.show();
    }
    else
    {
      if (suffix == '_header')
      {
        $('signin_header').popup.hide();
      }
    }
    $("Username"+suffix).value = 'Email Address';
    $("Password"+suffix).value = 'password';
    $("error_signin"+suffix).innerHTML = '';
  }
  else
  {
    var error_message = returnstuff.responseText;
    if(returnstuff.responseText == 'Incorrect Username or Password.')
    {
      error_message = "Invalid Email Address or Password. Please try again.";
    }
    $("error_signin"+suffix).innerHTML = error_message;
    $("error_signin"+suffix).style.display = '';
    //Effect.Appear("error_signin"+suffix);
    $("Password"+suffix).value = '';
  }
}

function signup(formname, suffix, event)
{
  var FirstName;
  var LastName;
  var Username;
  var Password;
  var Email;
  var DOB;
  var Gender;
  var ZipCode;

  formObject = eval("document."+formname);

  FirstName = formObject.FirstName.value;
  if(FirstName == 'First Name')
  {
    FirstName = '';
  }
  LastName = formObject.LastName.value;
  if(LastName == 'Last Name')
  {
    LastName = '';
  }
  Username = formObject.Username.value;
  Password = formObject.Password.value;
  Email = formObject.Email.value;
  DOB = formObject.DOB.value;
  Gender = (formObject.Gender[0].checked == true) ? formObject.Gender[0].value : formObject.Gender[1].value;
  ZipCode = formObject.ZipCode.value;
  if(ZipCode == 'Zip Code')
  {
    ZipCode = '30000';
  }

  //var returnstuff = http_fetch_sync('../controller.php','module=profiles&action=call_snap&callmethod=Signup&snap_request=post&return_function=callback_signup_ajax&FirstName='+FirstName+'&LastName='+LastName+'&Username='+Username+'&Password='+Password+'&Email='+Email+'&DOB='+DOB+'&Gender='+Gender+'&ZipCode='+ZipCode+'&Country=USA');

  var returnstuff = http_fetch_sync('/apps/ucg/pluck/snapsignup.php','module=profiles&action=call_snap&callmethod=Signup&snap_request=post&return_function=callback_signup_ajax&FirstName='+FirstName+'&LastName='+LastName+'&Username='+Username+'&Password='+Password+'&Email='+Email+'&DOB='+DOB+'&Gender='+Gender+'&ZipCode='+ZipCode+'&Country=USA');

  if (returnstuff.responseText.indexOf('Success') != -1)
  {
    response = returnstuff.responseText.split(';');

	  if (typeof ActiveUser == 'object') {
		  ActiveUser.loginUser(response[1]);
	  }
	  else {
		  $("signInSignOut").innerHTML = 'Hi '+response[1]+' <span class="yellowText">\\</span> <a href="#" onclick="sign_out();return false;">Sign Out</a>';
		  $("signInSignUp").style.display = 'none';
		  $("signInSignOut").style.display = '';
	  }

    //document.getElementById("signup").style.display = 'none';
    //document.getElementById("signin_top").style.display = 'none';
    //document.getElementById("signin_bottom").style.display = 'none';
    $('signup').popup.hide();
    formObject.reset();
    $("error_signin").innerHTML = '';
    $("error_signin").style.display = 'none';
    //Effect.Appear('add_comments'+suffix);
    //open_popup('add_comments'+suffix, event);
    showPlayer();
  }
  else
  {
    if (returnstuff.responseText.indexOf('Username') != -1)
    {
      $("Username").style.border = '1px solid red';
    }
    else if (returnstuff.responseText.indexOf('Email Address') != -1)
    {
      $("Email").style.border = '1px solid red';
    }
    $("error_signin").innerHTML = "  "+returnstuff.responseText;
    Effect.Appear("error_signin");
  }
}

function sign_out()
{
	if (typeof ActiveUser == 'object') {
		ActiveUser.doSignOut();
	}
	else {
		var returnstuff = http_fetch_sync('/controller.php','module=profiles&action=signout');
		if (returnstuff.responseText == "success")
		{
  			if (getCookie('COOKIE_USERGUID') != '')
  			{
    			document.cookie = "COOKIE_USERGUID=";
  			}
  			if (getCookie('COOKIE_USERNAME') != '')
  			{
    			document.cookie = "COOKIE_USERNAME=";
  			}
  			$("signInSignOut").style.display = 'none';
  			$("signInSignUp").style.display = '';
		}
		else
		{
  			alert(returnstuff.responseText);
		}
	}
}

function forgot_password(fieldId, messageDiv)
{
  var UsernameOrEmail;

  UsernameOrEmail = $(fieldId).value;

  var returnstuff = http_fetch_sync('/controller.php','module=profiles&action=call_snap&callmethod=SendPassword&snap_request=post&return_function=callback_forgot_password_ajax&UsernameOrEmail='+UsernameOrEmail);

  if (returnstuff.responseText.indexOf('Success') != -1)
  {
    response = returnstuff.responseText.split(';');
    //$('forgot_password'+suffix).popup.hide();
    //document.getElementById(fieldId).value = '';
    $(messageDiv).innerHTML = response[1];
    $(messageDiv).className = "success";
    Effect.Appear(messageDiv);
  }
  else
  {
    $(messageDiv).className = "error";
    $(messageDiv).innerHTML = returnstuff.responseText;
    Effect.Appear(messageDiv)
  }
}

function save_video_comments(subject, body, suffix, Reverse)
{
  if (body == '' || body == "Enter your Comments here")
  {
    Effect.Appear('error_add_comments'+suffix);
    return false;
  }
  if (subject == "Title")
  {
    subject = '';
  }
  var max_limit;
  max_limit = 250;
  body = check_length("body"+suffix, max_limit);
  if(body == "error")
  {
    return false;
  }
  //document.getElementById("add_comments"+suffix).style.display='none';
  if (suffix != "_player")
  {
    $("add_comments"+suffix).popup.hide();
  }
  else
  {
    $("add_comments_player").style.display = 'none';
    toggleRate();
  }
  $('error_add_comments'+suffix).style.display = 'none';
  var topicKey;
  var forumKey;
  var bodySubject;

  bodySubject = '<p class="commentTitle">'+subject+'</p><p class="commentText">'+body+'</p>';

  topicKey = $("TopicKey").value;
  forumKey = $("ForumKeyDep").value;

  //hard coded for testing
  //forumKey = 'video_comments_rajan';

  var returnstuff = http_fetch_sync('/controller.php','module=videos&action=call_snap&callmethod=SaveForeignPost&snap_request=post&return_function=callback_add_comments_ajax&body='+bodySubject+'&ForumKey='+forumKey+'&TopicKey='+topicKey);

  if (returnstuff.responseText == 'error')
  {
    alert("There is a problem connecting to the server.\nPlease try again later");
    return false;
  }
  if (returnstuff.responseText == 'Success')
  {
    $("body"+suffix).value = 'Enter your Comments here';
    $("subject"+suffix).value = 'Title';
    show_page('videos', 'user_reviews.inc', topicKey, '1', Reverse);
  }
  else
  {
    $('error_add_comments'+suffix).innerHTML = returnstuff.responseText;
    $('error_add_comments'+suffix).style.display = 'none';
    $("add_comments"+suffix).style.display='';
    if (suffix == "_player")
    {
      toggleRate();
    }
  }
}

function save_rating(ratingVal, success_message)
{
  id = $("VideoID").value;
  if (id == '' || id == '0')
  {
    $(success_message).className = "error";
    $(success_message).innerHTML = "No video selected";
    Effect.Appear(success_message);
    Effect.Fade(success_message, {duration: 10});
    return false;
  }
  var returnstuff = http_fetch_sync('/controller.php','module=videos&action=save_rating&ajax=true&id='+id+'&rating_type=5_star&rating='+ratingVal);

  var rating;
  rating = returnstuff.responseText.split(";");
  if (rating[0] == '0')
  {
    $(success_message).className = "error";
    $(success_message).innerHTML = "Oops ! Not able to locate the required database";
    Effect.Appear(success_message);
    Effect.Fade(success_message, {duration: 10});
    return false;
  }
  else
  {
    $(success_message).className = "success";
    $(success_message).innerHTML = "Thanks";
    Effect.Appear(success_message);
    for (var i=1; i <= 5; i++)
    {
      if (i <= rating[0])
      {
        $("star_"+i+"_display_top").src = '/images/star_white.png';
        $("star_"+i+"_display_bottom").src = '/images/star_white.png';
      }
      else
      {
        $("star_"+i+"_display_top").src = '/images/star_gray.png';
        $("star_"+i+"_display_bottom").src = '/images/star_gray.png';
      }
    }
    $("ratings_count_top").innerHTML = rating[1];
    $("ratings_count_bottom").innerHTML = rating[1];
    Effect.Fade(success_message, {duration: 10});
  }
}

function report_video_post(ReasonForViolation, Reason, Comment_Id)
{
  $("error_ReasonForViolation").className = "error";
  if (Reason == '')
  {
    $("error_Reason").innerHTML = "Please Enter the Reason to Report this";
    Effect.Appear("error_Reason");
  }
  else
  {
    Effect.Fade("error_Reason");
  }
  if (ReasonForViolation == '')
  {
    $("error_ReasonForViolation").innerHTML = "Please Select type of Violation";
    Effect.Appear("error_ReasonForViolation");
  }
  else
  {
    $("error_ReasonForViolation").innerHTML = "";
  }
  if (Reason == '' || ReasonForViolation == '')
  {
    return false;
  }
  //document.getElementById(Comment_Id).style.display = 'none';
  //$(Comment_Id).popup.hide();
  var topicId;

  topicId = $("TopicID").value;
  Comment_Id = $("report_comment_id").value;
  ReasonWithViolation = '<p><b>'+ReasonForViolation+'</b></p><p>'+Reason+'</p>';

  var returnstuff = http_fetch_sync('/controller.php','module=videos&action=call_snap&callmethod=ReportPost&snap_request=post&return_function=callback_report_post_ajax&Reason='+ReasonWithViolation+'&TopicID='+topicId+'&PostID='+Comment_Id);

  if (returnstuff.responseText == 'error')
  {
    alert("There is a problem connecting to the server.\nPlease try again later");
    return false;
  }
  if (returnstuff.responseText == 'True')
  {
    $("Reason").value = '';
    $("ReasonForViolation").value = '';
    $("error_ReasonForViolation").className = "success";
    $("error_ReasonForViolation").innerHTML = "Report Saved  Successfully";
    Effect.Appear("error_ReasonForViolation");
  }
  else
  {
    $("error_ReasonForViolation").className = "error";
    $("error_ReasonForViolation").innerHTML = returnstuff.responseText;
    Effect.Appear("error_ReasonForViolation");
  }
}

function check_session(suffix, event) {
	var cookieId = pluckgbl.cCheck('HD');
	if (cookieId != false) {
		open_popup('add_comments'+suffix, event);
	}
	else {
		if (suffix == '_body') {
			$("X_position").value = Event.pointerX(event);
			$("Y_position").value = Event.pointerY(event);
		}
		open_popup('signin'+suffix, event);
	}
/*
  var cookieId;
  cookieId = getCookie('COOKIE_USERGUID');
  if (cookieId == '')
  {
    //Effect.Appear("signin"+suffix);
    //$('signin'+suffix).popup.show();
    if (suffix == '_body')
    {
      $("X_position").value = Event.pointerX(event);
      $("Y_position").value = Event.pointerY(event);
    }
    open_popup('signin'+suffix, event);
    return false;
  }

  var returnstuff = http_fetch_sync('../controller.php','module=profiles&action=check_session_exists&callmethod=GetProfileInfo&snap_request=post');

  if (returnstuff.responseText == 'error')
  {
    alert("There is a problem connecting to the server.\nPlease try again later");
    return false;
  }
  if (returnstuff.responseText == 'True')
  {
    //Effect.Appear("add_comments"+suffix);
    //$('add_comments'+suffix).popup.show();
    open_popup('add_comments'+suffix, event);
  }
  else
  {
    //Effect.Appear("signin"+suffix);
    //$('signin'+suffix).popup.show();
    if (suffix == '_body')
    {
      $("X_position").value = Event.pointerX(event);
      $("Y_position").value = Event.pointerY(event);
    }
    open_popup('signin'+suffix, event);
  }
*/
}

function check_session_player() {
	if (playingAd == true) {
		return false;
	}
	var cookieId = pluckgbl.cCheck('HD');
	if (cookieId != false) {
		$("signin_player").style.display = 'none';
		$("add_comments_player").style.display = '';
		toggleRate();
		return false;
	}
	else {
		$("add_comments_player").style.display = 'none';
		$("signin_player").style.display = '';
		toggleRate();
	}
/*
  if (playingAd == true)
  {
    //if Ad is playing currently then return false
    return false;
  }
  var cookieId;
  cookieId = getCookie('COOKIE_USERGUID');
  if (cookieId == '')
  {
    $("add_comments_player").style.display = 'none';
    $("signin_player").style.display = '';
    toggleRate();
    return false;
  }

  var returnstuff = http_fetch_sync('../controller.php','module=profiles&action=check_session_exists&callmethod=GetProfileInfo&snap_request=post');

  if (returnstuff.responseText == 'error')
  {
    alert("There is a problem connecting to the server.\nPlease try again later");
    return false;
  }
  if (returnstuff.responseText == 'True')
  {
    $("signin_player").style.display = 'none';
    $("add_comments_player").style.display = '';
    toggleRate();
  }
  else
  {
    $("add_comments_player").style.display = 'none';
    $("signin_player").style.display = '';
    toggleRate();
  }
*/
}

function load_most_popular()
{
	var returnstuff = http_fetch_sync('/includes/superfooter/mostpopular.inc.php','');
	$("most_popular_contents").innerHTML = returnstuff.responseText;
}
