Using javascript to set relative position of popup

I currently use the code below to pop up a window. BUt based on different screen resolutions it might not appear where it should be on all monitors. I always want it to the top right. If there a way to do this with javascript. Setting the top/right pixels wont always work, i dont think so anyhow.
Thanks in advance.
<script>
function MDM_openWindow(theURL,winName,features)
var _W=window.open(theURL,winName,features);
     _W.focus();
_W.moveTo(750,25);
</script>
Click here

hi....use this to get screen res...then you can use a percantage instead of pixels to place the pop-up...it shows method and height methods to get user resolution...
<script language="JavaScript">
var browserheight;
var iMyHeight;
          var iMyWidth;
//Gets user's resolution
iMyHeight = (window.screen.height);
          iMyWidth = (window.screen.width);
</script>
hope this helps / steve

Similar Messages

  • Using JavaScript to set value of Spry validated text field

    Why can't the value of a text field be set using JavaScript
    when it's validated using the Spry validation widget.
    Example (this works):
    <select name="birthdate_month" id="birthdate_month"
    onChange="document.getElementById('birthdate').value = 'test';">
    <option>1</option>
    <option>2</option>
    </select>
    <input type="text" name="birthdate" id="birthdate"
    value="">
    Example (this doesnt work):
    <select name="birthdate_month" id="birthdate_month"
    onChange="document.getElementById('birthdate').value = 'test';">
    <option>1</option>
    <option>2</option>
    </select>
    <span id="birthdate">
    <input type="text" name="birthdate" id="birthdate"
    value="">
    <span class="textfieldRequiredMsg">please enter your
    birthday</span>
    </span>
    <script type="text/javascript">
    <!--
    var birthdate = new
    Spry.Widget.ValidationTextField("birthdate", "none");
    //-->
    </script>
    Is there a way to change the value of a Spry validated text
    field using JavaScript?
    Thanks.

    Why can't the value of a text field be set using JavaScript
    when it's validated using the Spry validation widget.
    Example (this works):
    <select name="birthdate_month" id="birthdate_month"
    onChange="document.getElementById('birthdate').value = 'test';">
    <option>1</option>
    <option>2</option>
    </select>
    <input type="text" name="birthdate" id="birthdate"
    value="">
    Example (this doesnt work):
    <select name="birthdate_month" id="birthdate_month"
    onChange="document.getElementById('birthdate').value = 'test';">
    <option>1</option>
    <option>2</option>
    </select>
    <span id="birthdate">
    <input type="text" name="birthdate" id="birthdate"
    value="">
    <span class="textfieldRequiredMsg">please enter your
    birthday</span>
    </span>
    <script type="text/javascript">
    <!--
    var birthdate = new
    Spry.Widget.ValidationTextField("birthdate", "none");
    //-->
    </script>
    Is there a way to change the value of a Spry validated text
    field using JavaScript?
    Thanks.

  • Using javascript to set non database values

    I finally figured out how to set the values of a non database form field using Javascript. The only problem is, I want this
    field to be a display only field, and the value does not get set if I make the field non updateable on the form. Can
    somebody please help me!! This is urgent.

    Stan,
    One way to do this is to call the doSubmit() function and create a page branch to handle your request. This way you can use apex validations and other goodies if your requirements change. Also this will save the state of your items on the page you are leaving.
    Edit
    I forgot to mention that you can pass a string parameter to the doSubmit function. The parameter will be the request sent to apex. For instance you could use doSubmit('DO_SOMETHING') and you can have a page branch which will fire if the request is equal to DO_SOMETHING.
    Cheers,
    Tyson Jouglet
    Edited by: Tyson Jouglet on Dec 1, 2009 10:11 AM

  • How to set relative position in Crystal Reports

    Hi
    We are using CR XI R2 for designing crystal reports and Oracle 9i as datasource.
    we have placed 5 columns in vertical position next to one another in details section.
    for ex
    Salesrevenue
    Company description
    SalesSummary
    as data fetch is dynamic whenver data in 'Sales revenue' is more it is overlapping on 'Company description' column
    and so on with 'Sales summary' too.
    I know that Relative postion works only when columns are placed in ROW MANNER i.e
    Salesrevenue||Company description||SalesSummary but doesn't work when placed in the above manner.
    Please let me know if there is any workround or any other option need to be configured to overcome this issue.
    Thanks in Advance,
    BSR

    Right click the report navigator(left of your report body under design mode), and then choose 'insert a new section below', this will insert a new detail section called 'details b', put the 'Company description' into that section and third one into another new detail section.
    This will let you avoid the overlap issue.
    Thx, Hao

  • Use styles to set positioning

    Hello
    Is it possible to use styles to set the positioning and size of a layer in indesign?
    Thank you

    Is this realted to your other question about repositioning master frames after they've been overridden?
    If so, as Willi explained earlier, these are not a layer, simply overridden frames. He didn't go into a lot of detail about master frames behaviors, though, so maybe the following will help:
    When you override a master object you lose the connection tot he master page for any attributes you subesequently edit. If you edit the text in the overridden frame, changes to text on the master page will not apply. If you override a master text frame before placing text, there will be no connection to any master text threading scheme. If you change the size or reposition the overridden frame, doing the same on the master page will have no effect on the overridden frame. And finally, master obejcts are always behind any live objects on the document page on any given layer, but if you use multiple layers you can have master objects on an upper layer that are in front of all objects on lower layers.

  • How to upload a document with values related to document properties in to document set at same time using Javascript object model

    Hi,
          Problem Description: Need to upload a document with values related to document properties using custom form in to document set using JavaScript Object Model.
        Kindly let me know any solutions.
    Thanks
    Razvi444

    The following code shows how to use REST/Ajax to upload a document to a document set.
    function uploadToDocumentSet(filename, content) {
    appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));
    hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
    var restSource = appweburl +
    "/_api/SP.AppContextSite(@target)/web/GetFolderByServerRelativeUrl('/restdocuments/testds')/files/add(url='" + filename + "',overwrite=true)?@target='" + hostweburl + "'";
    var dfd = $.Deferred();
    $.ajax(
    'url': restSource,
    'method': 'POST',
    'data': content,
    processData: false,
    timeout:1000000,
    'headers': {
    'accept': 'application/json;odata=verbose',
    'X-RequestDigest': $('#__REQUESTDIGEST').val(),
    "content-length": content.byteLength
    'success': function (data) {
    var d = data;
    dfd.resolve(d);
    'error': function (err,textStatus,errorThrown) {
    dfd.reject(err);
    return dfd;
    Then when this code returns you can use the following to update the metadata of the new document.
    function updateMetadataNoVersion(fileUrl) {
    appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));
    hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
    var restSource = appweburl +
    "/_api/SP.AppContextSite(@target)/web/GetFolderByServerRelativeUrl('/restdocuments/testds')/files/getbyurl(url='" + fileUrl + "')/listitemallfields/validateupdatelistitem?@target='" + hostweburl + "'";
    var dfd = $.Deferred();
    $.ajax(
    'url': restSource,
    'method': 'POST',
    'data': JSON.stringify({
    'formValues': [
    '__metadata': { 'type': 'SP.ListItemFormUpdateValue' },
    'FieldName': 'Title',
    'FieldValue': 'My Title2'
    'bNewDocumentUpdate': true,
    'checkInComment': ''
    'headers': {
    'accept': 'application/json;odata=verbose',
    'content-type': 'application/json;odata=verbose',
    'X-RequestDigest': $('#__REQUESTDIGEST').val()
    'success': function (data) {
    var d = data;
    dfd.resolve(d);
    'error': function (err) {
    dfd.reject(err);
    return dfd;
    Blog | SharePoint Field Notes Dev Tools |
    SPFastDeploy | SPRemoteAPIExplorer

  • Detect the Popup blocker settings by using javascript is it possible? if yes can any one suggest how to implement?

    How can i detect the Firefox the Popup blocker settings by using javascript, so that i can show message to user, saying" popup settings are on, please turn off or allow the site". can any one help me out. Thanks in advance.

    Hi William,
    I am writting a sample code for you :
    go to code wizard, select your node VBAk (where you have the attribute VBLEN )
    and select the attribute. Now code will be automatically generated.
        DATA LO_ND_VBAk TYPE REF TO IF_WD_CONTEXT_NODE.
        DATA LO_EL_VBAk  TYPE REF TO IF_WD_CONTEXT_ELEMENT.
        DATA LS_VBAk  TYPE WD_THIS->ELEMENT_VBAk.
        DATA LV_VBLEN TYPE WD_THIS->ELEMENT_VBAk-VBLEN.
      navigate from <CONTEXT> to <VBAk> via lead selection
        LO_ND_VBAk = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX__VBAk ).
      get element via lead selection
        LO_EL_VBAk  = LO_ND_VBAk ->GET_ELEMENT( ).
      alternative access  via index
      lo_el_VBAk  = lo_nd_VBAk ->get_element( index = 1 ).
      @TODO handle not set lead selection
        IF LO_EL_VBAk  IS INITIAL.
        ENDIF.
      get single attribute
        LO_EL_VBAk ->GET_ATTRIBUTE(
          EXPORTING
            NAME =  `VBLEN`
          IMPORTING
            VALUE = LV_VBLEN ).
    Now based on the value LV_VBLEN select values from database table and fill the internal table.
    DATA LT_VBAk  TYPE WD_THIS->ELEMENTSVBAk.  " this the table to keep the values
    select VBLEN ERDAT ERNAM AUDAT from VBAK into table LT_VBAk where VBLEN = LV_VBLEN. 
    Now you can bind the table to appropriate node.
    Regards,
    Monishankar C

  • Branch process using javascript to call popup

    I am on Windows Vista, Oracle XE and Apex 3.1.0.00.32.
    The branch works when using region based button.
    I wanted to use a "button displayed among this region's items" for a "button" list in the sidebar. I created a button and used a branch based on :REQUEST = 'button_name'. The branch fires but I get an error "Internet Explorer cannot display the webpage."
    HTML header code
    <script language="JavaScript" type="text/javascript">
    function popup(pURL, pwidth, pheight) {
    html_PopUp(pURL,"winLov",pwidth,pheight);
    </script>
    Branch Code
    javascript:popup('f?p=&APP_ID.:10012:&APP_SESSION.:&REQUEST.::10012:P10012_ISS_ID:&P10011_ISS_ID.',500,350);
    Since the code works in the URL redirect on a Button in a region position but not in a Branches redirect to a URL I assume this functionality does not work? Can anyone shed light on this? If it doesn't work I will need to find another solution....
    Thanks,
    Sam
    I did search and found a thread that intimates it should work.
    link:calling javascript on a branch is this possible
    Edited by: slavanaway on Mar 23, 2009 4:14 PM

    Luis,
    I see that I did not put more detail into the issue than the title.
    I am trying to call a popup from a button among region items. The user makes a selection then some custom DDL fires and the popup closes and the calling page is refreshed.
    A button among region items does not have a redirect to URL like a button in a region position. So I made the branch that was conditional on the button. I think I knew that a "branch" is server side. I don't understand why the jvascript URL does not work.
    A button in a region position and a list that redirects to a URL both work. I wanted the list to look like button in a vertical row.
    I now have the functionality working with a list.
    So I am coming to the mountain to get enlightenment. The Branches on a page can not use javascript is my guess and being eternally curious I was wondering why. I hope knowing will help me save time and produce better apps in the future.
    As for the actual behavior. When the Branch for the button amonth the region items fires. I would get the error message and the URL would only show apex flows. I don't have the exact URL as I dis-assembled the list and branches.
    I think the branch goes to the server but either the javascript is not passed or it does not handle the javascript.
    Tx,
    Sam

  • How to show modal window without popup in a web page using javascript

    Hi,
    How to show modal window without popup in a web page using javascript, means when the modalwindow is opened it should not ask for popup blocker alert......
    pls help me.....

    Thanx for ur reply,
    Actually the senario is when i click on a button, another jsp page should be displayed in a modal window without popup, but the functions alert() and confirm() will not accept the url path of the another jsp page...

  • How to create a Document Set in SharePoint 2013 using JavaScript Client Side Object Model (JSOM)?

    Hi,
    The requirement is to create ""Document Sets in Bulk" using JSOM. I am using the following posts:-
    http://blogs.msdn.com/b/mittals/archive/2013/04/03/how-to-create-a-document-set-in-sharepoint-2013-using-javascript-client-side-object-model-jsom.aspx
    http://social.msdn.microsoft.com/Forums/sharepoint/en-US/1904cddb-850c-4425-8205-998bfaad07d7/create-document-set-using-ecma-script
    But, when I am executing the code, I am getting error "Cannot read property 'DocumentSet' of undefined "..Please find
    below my code. I am using Content editor web part and attached my JS file with that :-
    <div>
    <label>Enter the DocumentSet Name <input type="text" id="txtGetDocumentSetName" name="DocumentSetname"/> </label> </br>
    <input type="button" id="btncreate" name="bcreateDocumentSet" value="Create Document Set" onclick="javascript:CreateDocumentSet()"/>
    </div>
    <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"> </script>
    <script type="text/javascript">
       SP.SOD.executeFunc('sp.js','SP.ClientContext','SP.DocumentSet','SP.DocumentManagement.js',CreateDocumentSet);
    // This function is called on click of the “Create Document Set” button. 
    var ctx;
    var parentFolder;
    var newDocSetName;
    var docsetContentType;
    function CreateDocumentSet() {
        alert("In ClientContext");
        var ctx = SP.ClientContext.get_current(); 
        newDocSetName = $('#txtGetDocumentSetName').val(); 
        var docSetContentTypeID = "0x0120D520";
        alert("docSetContentTypeID:=" + docSetContentTypeID);
        var web = ctx.get_web(); 
        var list = web.get_lists().getByTitle('Current Documents'); 
        ctx.load(list);
        alert("List Loaded !!");
        parentFolder = list.get_rootFolder(); 
        ctx.load(parentFolder);
        docsetContentType = web.get_contentTypes().getById(docSetContentTypeID); 
        ctx.load(docsetContentType);
        alert("docsetContentType Loaded !!");
        ctx.executeQueryAsync(onRequestSuccess, onRequestFail);
    function onRequestSuccess() {       
        alert("In Success");
        SP.DocumentSet.DocumentSet.create(ctx, parentFolder, newDocSetName, docsetContentType.get_id());
        alert('Document Set creation successful');
    // This function runs if the executeQueryAsync call fails.
    function onRequestFail(sender, args) {
        alert("Document Set creation failed" + + args.get_message());
    Please help !!
    Vipul Jain

    Hello,
    I have already tried your solution, however in that case I get the error - "UncaughtSys.ArgumentNullException: Sys.ArgumentNullException:
    Value cannot be null.Parameter name: context"...
    Also, I tried removing SP.SOD.executeFunc
    from my code, but no success :(
    Kindly suggest !!!
    Vipul Jain

  • Using Javascript to rasterize a layer and maintain its position with other layers.

    Trying to use javascript to rasterize just the contents of a certain layer by its name.
    It needs to maintain its position.
    I've sort of cobbled a script, but it keeps moving the rastered art to the top layer.
    Ex, top down i have Layer 4, RasterizeMe, Layer 2, Layer 1. 
    The rastered contents end up on Layer 4
    Any help would be apprecieated, or if theres a better method of doing this.
    //  Rasterize Layer by name
        if ( app.documents.length > 0 ) {
            doc = app.activeDocument;
            if(!doc.saved){
                Window.alert("This script needs to modify your document. Please save it before running this script.");
            }else{
                createRasterLayer(doc);
        }else{
            Window.alert("You must open at least one document.");
    function createRasterLayer(doc){
        var totalLayers = doc.layers.length;  //get the total number of layers in the active document
        for ( var i = 0 ; i < totalLayers ; i++){  //looping through layers            
            var currentLayer = doc.layers[i];
            var tempItem;
            if(currentLayer.visible == false) continue;   //We don't want to deal with hidden layers
            currentLayer.locked = false;                       //Unlock the layer if needed
            var layerName = new String( currentLayer.name );
            if ( layerName.indexOf("RasterizeMe") == 0 ) {
                currentLayer.hasSelectedArtwork = true;   //Select ALL in the layer
                if(doc.visibleBounds[2] == 0) continue;   // ignore empty layers
                var newoptions = new RasterizeOptions; 
                newoptions.resolution = 350;
                if ( doc.selection.length > 0 ) {
                    newGroup = app.activeDocument.groupItems.add();
                    for ( z = 0; z < doc.selection.length; z++ ) {
                        doc.selection[z].move( newGroup, ElementPlacement.INSIDE);
                    doc.rasterize (newGroup, newGroup.visibleBounds, newoptions);

    you're adding the group to the document, it will be the top most object on the top most layer
    newGroup = app.activeDocument.groupItems.add();
    use this to add the group to the current layer
    newGroup = currentLayer.groupItems.add();
    or if theres a better method of doing this.
    I would
    - loop through all layers,
    - hide them all, except the one you want to rasterize,
    - Rasterize the document
    - unhide layers

  • Set "peoples or groups" field with current user "login name" in sharepoint list form using javascript

    hi friends
    i am trying to set peoples or groups field in sharepoint  list form with current user login name
    here my code
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
    <script type="text/javascript">
    $(document).ready(function NewItemView () {
    var currentUser;
        if (SP.ClientContext != null) {
          SP.SOD.executeOrDelayUntilScriptLoaded(getCurrentUser, 'SP.js');
        else {
          SP.SOD.executeFunc('sp.js', null, getCurrentUser);
        function getCurrentUser() {
          var context = new SP.ClientContext.get_current();
          var web = context.get_web();
          currentUser = web.get_currentUser();
          context.load(currentUser);
          context.executeQueryAsync(onSuccessMethod, onRequestFail);
        function onSuccessMethod(sender, args) {
          var account = currentUser.get_loginName();
          var accountEmail = currentUser.get_email();
          var currentUserAccount = account.substring(account.indexOf("|") + 1);
        SetAndResolvePeoplePicker("requester",account);
    // This function runs if the executeQueryAsync call fails.
        function onRequestFail(sender, args) {
          alert('request failed' + args.get_message() + '\n' + args.get_stackTrace());
     function SetAndResolvePeoplePicker(fieldName, userAccountName) {
       var controlName = fieldName;
        var peoplePickerDiv = $("[id$='ClientPeoplePicker'][title='" + controlName + "']");
        var peoplePickerEditor = peoplePickerDiv.find("[title='" + controlName + "']");
        var spPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[peoplePickerDiv[0].id];
        peoplePickerEditor.val(userAccountName);
        spPeoplePicker.AddUnresolvedUserFromEditor(true);
    </script>
    but it is not working
    please help me

    Hi,
    According to your post, my understanding is that you wanted to set "peoples or groups" field with current user "login name" in SharePoint list form using JavaScript.
    To set "peoples or groups" field with current user "login name”,  you can use the below code:
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
    <script type="text/javascript">
    function SetPickerValue(pickerid, key, dispval) {
    var xml = '<Entities Append="False" Error="" Separator=";" MaxHeight="3">';
    xml = xml + PreparePickerEntityXml(key, dispval);
    xml = xml + '</Entities>';
    EntityEditorCallback(xml, pickerid, true);
    function PreparePickerEntityXml(key, dispval) {
    return '<Entity Key="' + key + '" DisplayText="' + dispval + '" IsResolved="True" Description="' + key + '"><MultipleMatches /></Entity>';
    function GetCurrentUserAndInsertIntoUserField() {
    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    this._currentUser = web.get_currentUser();
    context.load(this._currentUser);
    context.executeQueryAsync(Function.createDelegate(this, this.onSuccess),
    Function.createDelegate(this, this.onFailure));
    function onSuccess(sender, args) {
    SetPickerValue('ctl00_m_g_99f3303a_dffa_4436_8bfa_3511d9ffddc0_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_ctl00_UserField', this._currentUser.get_loginName(),
    this._currentUser.get_title());
    function onFaiure(sender, args) {
    alert(args.get_message() + ' ' + args.get_stackTrace());
    ExecuteOrDelayUntilScriptLoaded(GetCurrentUserAndInsertIntoUserField, "sp.js");
    </script>
    More information:
    http://alexeybbb.blogspot.com/2012/10/sharepoint-set-peoplepicker-via-js.html
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • How to set a form element value using javascript?

    Hello,
    I have been using the following two functions in AS 9.0.2 to set form values in javascript and it works correctly. However, the same code does not work in AS 10.1.2.0.2. Would appreciate if someone could let me know how to set form elements using Javascript(onchange of a field).
    function set_item_value(p_field_name, p_value)
    var v_index, v_full_name;
    for(v_index=0; v_index<document.forms[0].length; v_index++)
    v_full_name = document.forms[0].elements[v_index].name.split
    if (v_full_name[2] == p_field_name)
    document.forms[0].elements[v_index].value = p_value;
    function get_item_value(p_field_name)
    var v_index, v_full_name, v_return="";
    for(v_index=0; v_index<document.forms[0].length; v_index++)
    v_full_name = document.forms[0].elements[v_index].name.split
    if(v_full_name[2] == p_field_name)
    if(document.forms[0].elements[v_index].type != "radio")
    v_return = document.forms[0].elements[v_index].value;
    else
    if(document.forms[0].elements[v_index].checked)
    v_return = document.forms[0].elements[v_index].value;
    if(v_return == " ")
    v_return = "";
    return v_return;
    Thanks
    Dev

    This is not the best way to write JavaScript in Portal environment!
    You can't be sure that a form is the first in the html source!
    In Portal you change the order of your portlets, and also you can have several instances of the same portlet on the same page!!!
    You should use qualified form and field names!
    Please check the following JPDK methods:
    UrlUtils.htmlFormName
    HttpPortletRendererUtil.portletParameter

  • Set value of a display only item using javascript

    I was trying to find an answer in the forum but my searches gave me no results. How do
    I set a value of a display only item using javascript (ajax)?
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

    Vikas,
    Thanks for a fast responding. The type is Saves State. However, I tried to set the value
    of a display only item using:
    <script>
      function f_setDisplayOnly ()
        {$x('P80_X').parentNode.childNodes[4].nodeValue = 1;
    </script>without a result (or error). What am I doing wrong?
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • How to set a page parameter using javascript ?

    Hi:
    i'd like to set page parameter with a value taken from a textbox when clicking a button using javascript code.
    i mean, i have a textbox and a button using javascript and i want to take the value from the textbox and when onClick event happens set that value to the page parameter. How can i do this????
    Thanks.
    Best regards. Urko.

    Hi,
    Can you please elaborate your requirement. May be some better ways can be suggested. Also please mention which component you are using.
    Thanks,
    Sharmila

Maybe you are looking for

  • How to sum + group bp line items per a specific field?

    Hi, I found out about the SYS Numeric Query Based data definition, allowing me to sum the line items of a BP according to certain conditions. Now we have a more complex problem. We need to sum the line items of BP1 into the line items of BP2, groupin

  • Display a video in PC and Mac

    Hi, I need to display various formats of video such as wmv, avi and other popular ones. my client wants to have all controls on it, such as full screen ability and all, like youtube. what command can I use to be the most compatible with PC and MAC bo

  • Possible bug: sound is added when just on video setting

    I put the setting to be just video and not both - I dont want sound I create a new project and add videos All OK I use the first project as a template and duplicate to create new project I duplicate. I then replace the video in the timeline with anot

  • 10.8.4 where are you

    cannot wait for 10.8.4 to be released cause 10.8.3 is not working on mine machine so frustrating so best option now to wait any one give me a clue when the next version comes out so my computer works a1 ok again?

  • IPod but no warranty

    I'm going to have to get my iPod fixed at a retailer store, but I don't know if I got the warranty. Does it come automatically or did you have to buy it when you got the iPod? And if you don't have the warranty, how much is it to get the iPod replace