/**
 * Description: general javascript actions and functions that should be present at all times
 * User: pedro alfaiate
 * Date: Dez/2011
 **/

var obj_imgIntroList = new Array(),
    num_introWidth,
    num_introTotalPics,
    num_splitArea,
    obj_introOffset;

function onLoadCreateIntro() {
  getImageList( str_topGraphic );
}

function introGenerate() {

  num_introWidth = $( '#mainIntroContainer' ).width();
  num_introTotalPics = obj_imgIntroList.length;
  num_splitArea = num_introWidth / num_introTotalPics;
  obj_introOffset = $( '#mainIntroContainer' ).offset();

  $( '#mainIntroContainer' ).append( '<div class="mainIntroMask"><div class="mainIntroHandler"><p></p></div><ul class="mainIntro" /></div>' );
  for ( var i = 0 ; i < num_introTotalPics ; i++ ) {
    $( 'ul.mainIntro' ).append( '<li style="z-index: ' + i + '"><img src="' + obj_imgIntroList[i].pic + '" /></li>' );
    if ( i != 0 ) {
      $( '.mainIntro li' ).eq( i ).fadeTo( 0 , 0 );
    }
  }

  $( '.mainIntroHandler' ).click( function() {
    window.location = '/en/welcome.aspx';
  } );

  /// Mouse Move

  $( '#mainIntroContainer' ).mousemove( function(e) {
    imageTransition( e.pageX , e.pageY );
  } );

  /// Touch Move

  $( '#mainIntroContainer' ).bind( 'touchmove' , function(e) {
    e.preventDefault();

    var obj_touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0],
        obj_elm = $( this ).offset(),
        num_x = obj_touch.pageX - obj_elm.left,
        num_y = obj_touch.pageY - obj_elm.top;

    if ( num_x < $( this ).width() && num_x > 0 ) {
      if ( num_y < $( this ).height() && num_y > 0 ) {
        imageTransition( obj_touch.pageX , obj_touch.pageY );
      }
    }

  } );

}

function imageTransition(num_pageX , num_pageY) {

  var num_introX = num_pageX - obj_introOffset.left,
      num_introSplitPercentageTransition = 80,
      num_introPercentage = parseInt( (num_introX * 100) / num_splitArea ),
      num_introTransitionMinValue = parseInt( (num_introSplitPercentageTransition * num_splitArea) / 100 ),
      num_introTransitionHalfValue = parseInt( num_splitArea - num_introTransitionMinValue ),
      num_introTransitionPercentage = 0,
      num_introIndexPic = num_introPercentage.toString(),
      func_introIndexPic = function() {
        if ( num_introPercentage >= 100 ) {
          num_introIndexPic = num_introIndexPic.substr( 0 , 1 );
          num_introPercentage = num_introPercentage.toString().substr( 1 );
        }
        else {
          num_introIndexPic = 0;
        }

        if ( num_introIndexPic > 0 ) {
          num_introTransitionMinValue = num_introTransitionMinValue + (num_splitArea * num_introIndexPic);
        }

        if ( num_introPercentage >= num_introSplitPercentageTransition ) {
          num_introTransitionPercentage = parseInt( ((num_introX - num_introTransitionMinValue) * 100) / (num_introTransitionHalfValue * 2) );
        } else if ( num_introPercentage >= 0 && num_introPercentage <= (100 - num_introSplitPercentageTransition) ) {
          num_introTransitionPercentage = parseInt( ((((num_introX + num_introTransitionHalfValue) - (num_splitArea * ((num_introIndexPic * 1)))) * 100) / (num_introTransitionHalfValue * 2)) );
        }

      };

  func_introIndexPic();

  $( '.mainIntroHandler' ).css( {'left':num_introX - 15 + 'px', 'backgroundPosition': '-' + (num_introX - 15) + 'px 0' } );
  $( '.mainIntroHandler p' ).css( {'top':(num_pageY - 70) + 'px'} );
  if ( num_introIndexPic != '0' ) {
    if ( num_introPercentage >= num_introSplitPercentageTransition ) {
      $( '.mainIntro li' ).eq( (num_introIndexPic * 1) + 1 ).fadeTo( 0 , (num_introTransitionPercentage / 100) );
    } else if ( num_introPercentage >= 0 && num_introPercentage <= (100 - num_introSplitPercentageTransition) ) {
      $( '.mainIntro li' ).eq( num_introIndexPic ).fadeTo( 0 , (num_introTransitionPercentage / 100) );
    }
  }
  else {
    if ( num_introPercentage >= num_introSplitPercentageTransition ) {
      $( '.mainIntro li' ).eq( (num_introIndexPic * 1) + 1 ).fadeTo( 0 , (num_introTransitionPercentage / 100) );
    }
  }
}

function getImageList(path) {

  var str_href,
      str_splitHref,
      str_imageSrc,
      str_title,
      str_fileExt;

  path = path.substring( 0 , path.lastIndexOf( "/" ) );

  if ( path != " " ) {

    $.ajax( {
      url: location.protocol + "//" + location.hostname + "/Files/GetFolderContents.aspx?Path=" + path,
      success: function(data) {
        var xml,
            imgNumbers = '',
            allImgSrc = '';
        if ( $.browser.msie && typeof data == "string" ) {
          xml = new ActiveXObject( "Microsoft.XMLDOM" );
          xml.async = false;
          xml.loadXML( data );
        }
        else {
          xml = data;
        }

        $( xml ).find( "File" ).each( function(i) {
          str_href = $( this ).attr( 'href' );
          str_splitHref = str_href.split( "/" );
          str_imageSrc = str_splitHref[str_splitHref.length - 1].split( "." );
          str_title = str_imageSrc[0];
          str_fileExt = str_imageSrc[1];


          if ( str_fileExt != 'swf' ) {
            obj_imgIntroList.push(
                {
                  pic:'/admin/public/getimage.aspx?Image=' + $( this ).attr( 'href' ) + '&amp;Format=jpg&amp;Width=900&amp;Height=295&amp;Compression=90&amp;Crop=5',
                  picTitle: str_title
                }
            );
          }
        } );
      },
      complete: function() {
        introGenerate();
      }
    } );

  }
}
