// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function toggleelement(elementid){
	var block = $(elementid)
	Effect.toggle(block,'blind',{duration:0.5})
	var trig = elementid + 'trigger'
	var trigelem = $(trig)
	var imagesrc = trigelem.src
	if (imagesrc.match(/.*plus.*/))
		{
			trigelem.src = "/images/minus.gif"
		}
	else
		{
			trigelem.src = "/images/plus.gif"
		}
}



function setSelectToValue(thisSelect, thisValue) {
    var found = 0;
    for (i = 0; thisSelect[i]; i++) {
        if (thisSelect[i].value == thisValue) {
            thisSelect[i].selected = true;
            found = 1;
        }
    }
    if (found == 0) {
        alert("Error: Could not locate " + 
                thisValue + " in " + thisSelect + ".");
    }
}

function pausecomp(millis)
{
	var date = new Date();
	var curDate = null;

	do { var curDate = new Date(); }
	while(curDate-date < millis);
}

function make_link( elementid ){
  var textarea = $(elementid);
  var text = textarea.value;

  fixTexareaSelectionStuffBecauseIEIsStupid( textarea );

  selectionStart = textarea.selectionStart;
  selectionEnd = textarea.selectionEnd;
  
  //Only do something if some text is selected.
  if ( selectionStart != selectionEnd ){
    start = text.substring( 0, selectionStart );
    end = text.substring( selectionEnd, text.length );
    selected = text.substring( selectionStart, selectionEnd ); 
    url = (prompt( "Please enter the URL you would like to link to in the box below:", ""))
    if ( url ){
      textarea.value = start + "\"" + selected + "\":" + url + end;
      index = (start + "\"" + selected + "\":" + url).length
      setSelectionRange( textarea, index, index );
    }
  }
}

function make_ext_link( elementid ){
  var textarea = $(elementid);
  var text = textarea.value;

  fixTexareaSelectionStuffBecauseIEIsStupid( textarea );

  selectionStart = textarea.selectionStart;
  selectionEnd = textarea.selectionEnd;
  
  //Only do something if some text is selected.
  if ( selectionStart != selectionEnd ){
    start = text.substring( 0, selectionStart );
    end = text.substring( selectionEnd, text.length );
    selected = text.substring( selectionStart, selectionEnd ); 
    url = (prompt( "Please enter the URL you would like to link to in the box below:", ""))
    if ( url ){
      textarea.value = start + "<a href=\"" + url + "\" target=\"_blank\">" + selected + "</a>" + end;
      index = (start + "\"" + selected + "\":" + url).length
      setSelectionRange( textarea, index, index );
    }
  }
}


function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  } else if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
}

function populate_checkout_fields(){
  first_name = $('order_customer_first_name').value;
  last_name = $('order_customer_last_name').value;
  populate_element_if_empty('card_first_name', first_name);
  populate_element_if_empty('card_last_name', last_name);
  populate_element_if_empty('billing_address_name', first_name + ' ' + last_name);
  populate_element_if_empty('shipping_address_name', first_name + ' ' + last_name);
}

function populate_element_if_empty( element_id, new_element_value ){
  el = $(element_id);
  if ( el && (el.value == "" || new_element_value.indexOf( el.value ) == 0 ) ){
    el.value = new_element_value
  }  
}

function change_order_submission_button( button_obj ){
  button_obj.disabled = true;
  button_obj.value = "Please wait while we submit your order...";
}

function stylize( elementid, textile_char ){
  var textarea = $(elementid);
  var text = textarea.value;
  var index = 0;
  //Check to see how retarded IE is
  //selectionStart and selectionEnd are undefined - so we need to hack it up.
  //Gooooooooooooo HACK!
  fixTexareaSelectionStuffBecauseIEIsStupid( textarea );

  selectionStart = textarea.selectionStart;
  selectionEnd = textarea.selectionEnd;
  //alert( "[Selection Start: " + selectionStart + "] [Selection End: " + selectionEnd + "]")

  //Nothing is selected
  if ( selectionStart == selectionEnd ){
    start = text.substring( 0, selectionStart );
    end = text.substring( selectionEnd, text.length );
    textarea.value = start + textile_char + textile_char + end;
    index = (start + textile_char).length;
  } else {
    start = text.substring( 0, selectionStart );
    end = text.substring( selectionEnd, text.length );
    selected = text.substring( selectionStart,	selectionEnd ); 
    textarea.value = start + textile_char + selected + textile_char + end;
    index = (start + textile_char + selected + textile_char).length;
  }
  setSelectionRange( textarea, index, index );
}

function newline( elementid ){
	var textarea = $(elementid)
	var text = textarea.value
	var index = 0
	fixTexareaSelectionStuffBecauseIEIsStupid( textarea );
	selectionStart = textarea.selectionStart;
  selectionEnd = textarea.selectionEnd;
	start = text.substring( 0, selectionStart );
  end = text.substring( selectionEnd, text.length );
  textarea.value = start + "<br/>" + end;
  index = (start + "<br/>").length;
  setSelectionRange( textarea, index, index );
}


function fixTexareaSelectionStuffBecauseIEIsStupid( element ){
  if( document.selection ){ 
    // The current selection 
    var range = document.selection.createRange(); 
    // We'll use this as a 'dummy' 
    var stored_range = range.duplicate(); 
    // Select all text 
    stored_range.moveToElementText( element ); 
    // Now move 'dummy' end point to end point of original range 
    stored_range.setEndPoint( 'EndToEnd', range ); 
    // Now we can calculate start and end points 
    element.selectionStart = stored_range.text.length - range.text.length; 
    element.selectionEnd = element.selectionStart + range.text.length; 
  }
}


/**
 * Rewrite of substruct's showSubTab function that didn't do what
 * we wanted it to.
 */
function toggleEditPreview(item_name, action) {
  if ( action == 'edit' ){
    Element.show( item_name + '_edit' );
    Element.hide( item_name + '_preview' );
    $(item_name + '_preview_tab').className = ""
    $(item_name + '_edit_tab').className = "active";
  } else {
    Element.hide( item_name + '_edit' );
    Element.show( item_name + '_preview' );
    $(item_name + '_preview_tab').className = "active"
    $(item_name + '_edit_tab').className = "";
  }
}

function popitup(url, height, width, scrollbars) {
	var height = (height == null) ? 350 : height;
	var width = (width == null) ? 550 : width;
	var scrollbars = (scrollbars == null) ? 0 : scrollbars;
	newwindow=window.open(url,'name','height='+height+',width='+width+',scrollbars='+scrollbars+',resizable=1');
	if (window.focus) {newwindow.focus()}
	return false;
}

function fixSidebarHeight() {
	elem = $('content')
	elem_height = elem.offsetHeight - 120
	if ($('sidebar_list') != null) {
		if ($('sidebar_list').offsetHeight < elem_height){
			$('sidebar_list').style.height = elem_height + "px"
		}
	} else {
		if ($('whybuy').offsetHeight < elem_height){
			$('whybuy').style.height = elem_height + "px"
		}
	}
}

function copyPageTitle() {
	title = $('product_name').value
	if ($('product_page_title').value.length == 0) {
		$('product_page_title').value = title
	}
}

function toggleBillShipSame() {
	if ($('bill_ship_same').checked) {
		$('shipping_address_first_name').value = $('billing_address_first_name').value;
		$('shipping_address_first_name').disabled = true;
		$('shipping_address_last_name').value = $('billing_address_last_name').value;
		$('shipping_address_last_name').disabled = true;
		$('shipping_address_company_name').value = $('billing_address_company_name').value;
		$('shipping_address_company_name').disabled = true;
		$('shipping_address_address1').value = $('billing_address_address1').value;
		$('shipping_address_address1').disabled = true;
		$('shipping_address_address2').value = $('billing_address_address2').value;
		$('shipping_address_address2').disabled = true;
		$('shipping_address[city]').value = $('billing_address[city]').value;
		$('shipping_address[city]').disabled = true;
		$('shipping_address_state').value = $('billing_address_state').value;
		$('shipping_address_state').disabled = true;
		$('shipping_address[zip]').value = $('billing_address[zip]').value;
		$('shipping_address[zip]').disabled = true;
	} else {
		$('shipping_address_first_name').disabled = false;
		$('shipping_address_last_name').disabled = false;
		$('shipping_address_company_name').disabled = false;
		$('shipping_address_address1').disabled = false;
		$('shipping_address_address2').disabled = false;
		$('shipping_address[city]').disabled = false;
		$('shipping_address_state').disabled = false;
		$('shipping_address[zip]').disabled = false;
	}
}

function copyPageUrl() {
	title = $('product_page_title').value
	if ($('product_page_name').value.length == 0){
		var underscored = title.toLowerCase();
		underscored = underscored.replace(/\s/g,"_")
		$('product_page_name').value = underscored
	}
}