function checkLimits(item, limit){
  var str_item = item.value;
  if(str_item.length > limit){
    item.value = str_item.substring(0, limit - 1);
    // alert('You can\'t input more than limits.');
  }
  return false;
}

// for update widget
function thisMovie(movieName){
  if(navigator.appName.indexOf("Microsoft") != -1){
    return window[movieName];
  } else {
    return document[movieName];
  }
}


// Generic update embed function.
function updateEmbed(){
  var obj = new colorObject();

  if(thisMovie("container").updateEmbed)
    thisMovie("container").updateEmbed(obj);
  showMessage('color');

}

function colorObject(){
  this.background_color = '0x' + document.getElementById('edit-bgcolor').value;
  this.border_color = '0x' + document.getElementById('edit-border-color').value;
  this.text_color = '0x' + document.getElementById('edit-color').value;
}

function showMessage(message_type){
  if(checkChanged()){
    if(document.getElementById('widget-save-button'))
      document.getElementById('widget-save-button').style.backgroundColor = '#ffffcc';
    if(document.getElementById('widget-save-message')){
      var message = '';
      document.getElementById('widget-save-message').style.display = "";

      if(message_type == 'size'){
        message = '<div id="widget-save-message">' +
          'After making your selection, copy and paste the embed code below. The code changes based on your selection.' +
          '</div>';
      } else {
        message = '<div id="widget-save-message">' +
        'Click here to save changes.' +
        '</div>';
      }
      $("#widget-save-message").replaceWith(message);
    }
  } else {
    if(document.getElementById('widget-save-button'))
      document.getElementById('widget-save-button').style.backgroundColor = '#ffffff';
    if(document.getElementById('widget-save-message'))
      document.getElementById('widget-save-message').style.display = "none";
  }
}

/* for copy to clibboard*/

//var clip = null;
//var clip_tab = null;
var title = null;
var description = null;
var show_lead = 1;
var lead_incentive = null;
var show_lead = 1;
var lead_incentive = null;
var show_text_comments = 1;
var rating_options = null;
var background_color = null;
var border_color = null;
var text_color = null;
var widget_size = 1;

function init() {
  title = document.getElementById('edit-title').value;
  description = document.getElementById('edit-description').value;
  lead_incentive = document.getElementById('edit-lead-incentive').value;
  rating_options = document.getElementById('edit-rating-options').value;

  background_color = document.getElementById('edit-bgcolor').value;
  border_color = document.getElementById('edit-border-color').value;
  text_color = document.getElementById('edit-color').value;
  for(var i = 0; i < document.getElementById('vb-widgets-form').size.length; i++){
    if(document.getElementById('vb-widgets-form').size[i].checked)
      widget_size = document.getElementById('vb-widgets-form').size[i].value;
  }

  for(var j = 0; j < document.getElementById('vb-widgets-form').show_lead.length; j++){
    if(document.getElementById('vb-widgets-form').show_lead[j].checked)
      show_lead = document.getElementById('vb-widgets-form').show_lead[j].value;
  }

  for(var k = 0; k < document.getElementById('vb-widgets-form').show_text_comments.length; k++){
    if(document.getElementById('vb-widgets-form').show_text_comments[k].checked)
      show_text_comments = document.getElementById('vb-widgets-form').show_text_comments[k].value;
  }

 /*
  clip = new ZeroClipboard.Client();
  clip.setHandCursor( true );

  clip.addEventListener('mouseDown', CopyToClipboard);
  clip.addEventListener('onClick', CopyToClipboard);
  clip.addEventListener('load', my_load);

  clip.glue('d_clip_button');
 */
  //copy_init();

  showMessage('init');

  if(document.getElementById("edit-check-rating-options")){
    if(document.getElementById("edit-rating-options").value != 'Neutral,Positive,Negative'){
      document.getElementById("edit-check-rating-options").checked = true;
    } else {
      document.getElementById("edit-check-rating-options").checked = false;
    }
    showRatingOptionsInput(document.getElementById("edit-check-rating-options"), true);
  }

}

function copy_init() {
  clip_tab = new ZeroClipboard.Client();
  clip_tab.setHandCursor( true );
  clip_tab.addEventListener('mouseDown', CopyToClipboardTab);
  clip_tab.addEventListener('onClick', CopyToClipboardTab);
  clip_tab.glue('d_tab_clip_button');
}

function CopyToClipboard(client){
  clip.setText(document.getElementById('widget-embed-code').value);
}

function CopyToClipboardTab(client){
  if(document.getElementById('widget-tab-embed-code'))
    clip_tab.setText(document.getElementById('widget-tab-embed-code').value);
}

function my_load(client) {
  //
}

function checkChanged() {
  var return_value = false;
  if (!title || !document.getElementById('edit-title')){
    // don't check
  } else {
    if (title != document.getElementById('edit-title').value){
      return_value = true;
    }
  }

  if (!description || !document.getElementById('edit-description')){
    // don't check
  } else {
    if (description != document.getElementById('edit-description').value){
      return_value = true;
    }
  }

  if (document.getElementById('vb-widgets-form').show_lead){
    var show_lead_change = show_lead;
    for (var j = 0; j < document.getElementById('vb-widgets-form').show_lead.length; j++){
      if (document.getElementById('vb-widgets-form').show_lead[j].checked)
        show_lead_change = document.getElementById('vb-widgets-form').show_lead[j].value;
    }
    if (show_lead_change == 1){
      document.getElementById('widget-lead-incentive').style.display = "";
      document.getElementById('vb-widgets-leads').style.display = "";
    } else {
      document.getElementById('widget-lead-incentive').style.display = "none";
      document.getElementById('vb-widgets-leads').style.display = "none";
    }
    if (show_lead != show_lead_change){
      return_value = true;
    }
  }

  if (!lead_incentive || !document.getElementById('edit-lead-incentive')){
    // don't check
  } else {
    if (lead_incentive != document.getElementById('edit-lead-incentive').value){
      return_value = true;
    }
  }

  if (document.getElementById('vb-widgets-form').show_text_comments){
    var show_text_comments_change = show_text_comments;
    for (var k = 0; k < document.getElementById('vb-widgets-form').show_text_comments.length; k++){
      if (document.getElementById('vb-widgets-form').show_text_comments[k].checked)
        show_text_comments_change = document.getElementById('vb-widgets-form').show_text_comments[k].value;
    }
    if (show_text_comments != show_text_comments_change){
      return_value = true;
    }
  }

  if (!rating_options || !document.getElementById('edit-rating-options')){
    // don't check
  } else {
    if (rating_options != document.getElementById('edit-rating-options').value){
      return_value = true;
    }
  }

  if (!background_color || !document.getElementById('edit-bgcolor')){
    // don't check
  } else {
    if (background_color != document.getElementById('edit-bgcolor').value){
      return_value = true;
    }
  }

  if (!border_color || !document.getElementById('edit-border-color')){
    // don't check
  } else {
    if (border_color != document.getElementById('edit-border-color').value){
      return_value = true;
    }
  }

  if (!text_color || !document.getElementById('edit-color')){
    // don't check
  } else {
    if (text_color != document.getElementById('edit-color').value){
      return_value = true;
    }
  }

  if (document.getElementById('vb-widgets-form').size){
    var widget_size_change = widget_size;
    for (var i = 0; i < document.getElementById('vb-widgets-form').size.length; i++){
      if (document.getElementById('vb-widgets-form').size[i].checked)
        widget_size_change = document.getElementById('vb-widgets-form').size[i].value;
    }
    if (widget_size != widget_size_change){
      return_value = true;
    }
  }

  return return_value;
}

function getEmbedCode(path, contentId, width, height){

  var container = path + "/container.swf";

  var embed_code =
  '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' +
  '      codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"' +
  '      width="' + width + '" height="' + height + '" id="' + contentId + '" align="middle">' +
  '        <param name="allowScriptAccess" value="always" />' +
  '        <param name="allowFullScreen" value="true" />' +
  '        <param name="FlashVars" value="contentId=' + contentId + '&internal=5" />' +
  '        <param name="movie" value="' + container + '" />' +
  '        <param name="quality" value="high" />' +
  '        <param name="wmode" value="window" />' +
  '        <embed src="' + container + '" FlashVars="contentId=' + contentId +
  '&internal=5" wmode="window" quality="high" width="' + width + '" height="' + height +
  '" name="' + contentId + '" allowFullScreen="true" allowScriptAccess="always"' +
  '        type="application/x-shockwave-flash"' +
  '        pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
  '</object>';

  return embed_code;
}

function changeEmbedCode(item){

  var nid = document.getElementById('edit-nid').value;
  var height = document.getElementById('edit-height').value;
  var width = document.getElementById('edit-width').value;
  var contentId = document.getElementById('edit-contentId').value;
  var container = document.getElementById('edit-container-path').value;
  var title = document.getElementById('edit-title').value;
  var poststr = "nid=" + nid + "&tab_type=" + item.value;

  var a_code =
'<a style="background-color: rgb(34, 34, 34);" class="vb_widgets_tab widget_tab_right widget_tab_' + item.value + '" id="widget_tab" ' +
'   href="#TB_inline?inlineId=myOnPageContent&height=' + height + '&width=' + width + '&contentId=' + contentId + '&container=' + container + '"' +
'   title="' + title + '">WIDGET</a>';

  var tab_embed_code =
'<style type="text/css" media="all">@import "http://' + location.hostname + '/sites/all/modules/vb_widgets/vb_widgets_tab.css";</style>' +
'<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>' +
'<script type="text/javascript" src="http://' + location.hostname + '/sites/all/modules/vb_widgets/vb_widgets_tab.js"></script>' + a_code +
'<div id="myOnPageContent" class="TB_inline_Content"></div>';

//  $("#widget_tab").replaceWith(a_code);
  if(item.value == 0){
    $("#widget_tab").removeClass("widget_tab_1");
  } else if(item.value == 1){
    $("#widget_tab").removeClass("widget_tab_0");
  } else if(item.value == 2){
    $("#widget_tab").removeClass("widget_tab_3");
  } else if(item.value == 3){
    $("#widget_tab").removeClass("widget_tab_2");
  }
  $("#widget_tab").addClass("widget_tab_" + item.value);

  document.getElementById('widget-tab-embed-code').value = tab_embed_code;

 // alert('a: ' + poststr);
  if(makePOSTRequest("/widgets/change_tab", poststr)){
    //window.location.reload(true);
  }
 // return true;
}

function changeWidgetVideoOrder(nid, serialize){

  var poststr = "nid=" + nid + "&" + serialize;

 // alert('a: ' + poststr);
  if (makePOSTRequest("/widgets/change_video_order", poststr)){
    //window.location.reload(true);
  }
 // return true;

}

function makePOSTRequest(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/html');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
      http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  if (!http_request) {
    alert('Cannot create XMLHTTP instance');
    return false;
  }

  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);

  return true;
}

function alertContents() {
  if (http_request.readyState == 4) {
  //  window.location.reload(true);

    if (http_request.status == 200) {

      result = http_request.responseText;
      if (result != 1) {
       // alert(result);
      }
       //document.getElementById('indicator').style.visibility = 'hidden';
    } else {
       //alert('There was a problem with the request.');
       //document.getElementById('indicator').style.visibility = 'hidden';
    }
  }
}

function SaveLeadsRecipients(){
  var nid = document.getElementById("edit-nid").value;
  var lead_recipients = document.getElementById("edit-lead-recipients").value;
  var poststr = "nid=" + nid + "&" + "lead_recipients=" + lead_recipients;

 // alert('a: ' + poststr);
  if(makePOSTRequest("/widgets/save_lead_recipients", poststr)){
    //window.location.reload(true);
  }
 // return true;

}

function serializeTable(tableId) {
  var table = document.getElementById(tableId);
  var result = "";
//  var tableId = table.id;
  var rows = table.rows;
  for (var i = 0; i < rows.length; i++) {
      if (result.length > 0) result += "&";
      var rowId = rows[i].id;
      if (rowId && rowId && table.tableDnDConfig && table.tableDnDConfig.serializeRegexp) {
          rowId = rowId.match(table.tableDnDConfig.serializeRegexp)[0];
      }

      result += tableId + '[]=' + rows[i].id;
  }
  return result;
}

function showRatingOptionsInput(item, is_init){
  var rating_options = document.getElementById("edit-rating-options");
  var rating_labal = document.getElementById("edit-rating-label");

  if(item.checked){
    $("#edit-rating-label").replaceWith('<div id="edit-rating-label">Custom Rating Options:</div>');
    //rating_labal.value = 'Custom Rating Options:';
    // for FF
    rating_options.removeAttribute("class");
    // for IE
    rating_options.removeAttribute("className");
    // for FF
    rating_options.setAttribute("class", "form-text");
    // for IE
    rating_options.setAttribute("className", "form-text");
    if(!is_init){
      rating_options.select();
      rating_options.focus();
    }

  } else {
    $("#edit-rating-label").replaceWith('<div id="edit-rating-label">Default Settings:</div>');
//    rating_labal.value = 'Default Settings:';
    rating_options.value = 'Neutral,Positive,Negative';
    // for FF
    rating_options.setAttribute("class", "form-text widget-form-text-item");
    // for IE
    rating_options.setAttribute("className", "form-text widget-form-text-item");
  }
}

function checkEachLimits(item, limit){
  var str_item = item.value;
  var each_item = str_item.split(",");
  var replace_item = '';

  for(var i = 0; i < each_item.length; i++){
    if(each_item[i].length > limit){
      alert('You can\'t input more than limits(' + limit + ' characters).');
      replace_item += each_item[i].substring(0, limit - 1);
      item.select();
      item.focus();
      return false;
    } else {
      replace_item += each_item;
    }
    if(i > 0){
      replace_item += ',';
    }
  }
//  item.value = replace_item;
  return true;

}

// Removes leading whitespaces
function LTrim( value ) {

	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {

	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {

	return LTrim(RTrim(value));

}


function displayVideoInputs() {
 
  var selects = document.getElementsByTagName("input");
  for(var i = 0; i < selects.length; i++){
    var id = selects[i].id.split('-');
    if (id[0] + '-' + id[1] == 'edit-videos' && id[3] + '-' + id[4] == 'video-id') {
      displayVideoInput(selects[i]);
    }    
  }  
}

function displayVideoInput(item) {
  var id = item.id.split('-');
  var key = id[2];
  var video_input_id = 'edit-videos-' + key + '-video-input';

  if (item.checked) {
    document.getElementById(video_input_id).style.display = "";
    $("#table-td-video-id-" + key).addClass("selected");
    $("#table-td-video-thumbnail-" + key).addClass("selected");
    $("#table-td-video-info-" + key).addClass("selected");
    $("#table-td-video-input-" + key).addClass("selected");
  } else {
    document.getElementById(video_input_id).style.display = "none";
    $(this).removeClass("selected");
    $("#table-td-video-id-" + key).removeClass("selected");
    $("#table-td-video-thumbnail-" + key).removeClass("selected");
    $("#table-td-video-info-" + key).removeClass("selected");
    $("#table-td-video-input-" + key).removeClass("selected");
  } 
}

function changeWidgetOrder(result){
  var poststr = 'result=' + result;

 // alert('a: ' + poststr);
  if (makePOSTRequest("/widgets/change_order", poststr)){
    //window.location.reload(true);
  }
}



